writers: Use the new sem::Module::DependencyOrderedDeclarations

As the resolver currently enforces in-order declarations, this does not
change the declaration order from iterating over the
ast::Module::GlobalDeclarations.

The MSL backend has been changed to use the
sem::Module::DependencyOrderedDeclarations list instead of looping over
different declaration types separately.

Bug: tint:1266
Change-Id: I698d612032285311017bfceab3c42adae1928a0e
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/79767
Reviewed-by: James Price <jrprice@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
diff --git a/src/writer/glsl/generator_impl.cc b/src/writer/glsl/generator_impl.cc
index 7192a8b..4f4a477 100644
--- a/src/writer/glsl/generator_impl.cc
+++ b/src/writer/glsl/generator_impl.cc
@@ -36,6 +36,7 @@
 #include "src/sem/depth_texture_type.h"
 #include "src/sem/function.h"
 #include "src/sem/member_accessor_expression.h"
+#include "src/sem/module.h"
 #include "src/sem/multisampled_texture_type.h"
 #include "src/sem/sampled_texture_type.h"
 #include "src/sem/statement.h"
@@ -147,7 +148,8 @@
 
   line();
 
-  for (auto* decl : builder_.AST().GlobalDeclarations()) {
+  auto* mod = builder_.Sem().Module();
+  for (auto* decl : mod->DependencyOrderedDeclarations()) {
     if (decl->Is<ast::Alias>()) {
       continue;  // Ignore aliases.
     }
diff --git a/src/writer/hlsl/generator_impl.cc b/src/writer/hlsl/generator_impl.cc
index 8861592..96cc8b0 100644
--- a/src/writer/hlsl/generator_impl.cc
+++ b/src/writer/hlsl/generator_impl.cc
@@ -37,6 +37,7 @@
 #include "src/sem/depth_texture_type.h"
 #include "src/sem/function.h"
 #include "src/sem/member_accessor_expression.h"
+#include "src/sem/module.h"
 #include "src/sem/multisampled_texture_type.h"
 #include "src/sem/sampled_texture_type.h"
 #include "src/sem/statement.h"
@@ -223,7 +224,8 @@
   const TypeInfo* last_kind = nullptr;
   size_t last_padding_line = 0;
 
-  for (auto* decl : builder_.AST().GlobalDeclarations()) {
+  auto* mod = builder_.Sem().Module();
+  for (auto* decl : mod->DependencyOrderedDeclarations()) {
     if (decl->Is<ast::Alias>()) {
       continue;  // Ignore aliases.
     }
diff --git a/src/writer/msl/generator_impl.cc b/src/writer/msl/generator_impl.cc
index 5c2ce6d..920df33 100644
--- a/src/writer/msl/generator_impl.cc
+++ b/src/writer/msl/generator_impl.cc
@@ -45,6 +45,7 @@
 #include "src/sem/i32_type.h"
 #include "src/sem/matrix_type.h"
 #include "src/sem/member_accessor_expression.h"
+#include "src/sem/module.h"
 #include "src/sem/multisampled_texture_type.h"
 #include "src/sem/pointer_type.h"
 #include "src/sem/reference_type.h"
@@ -207,44 +208,46 @@
 
   auto helpers_insertion_point = current_buffer_->lines.size();
 
-  for (auto* const type_decl : program_->AST().TypeDecls()) {
-    if (!type_decl->Is<ast::Alias>()) {
-      if (!EmitTypeDecl(TypeOf(type_decl))) {
-        return false;
-      }
+  auto* mod = builder_.Sem().Module();
+  for (auto* decl : mod->DependencyOrderedDeclarations()) {
+    bool ok = Switch(
+        decl,  //
+        [&](const ast::Struct* str) {
+          TINT_DEFER(line());
+          return EmitTypeDecl(TypeOf(str));
+        },
+        [&](const ast::Alias*) {
+          return true;  // folded away by the writer
+        },
+        [&](const ast::Variable* var) {
+          if (var->is_const) {
+            TINT_DEFER(line());
+            return EmitProgramConstVariable(var);
+          }
+          // These are pushed into the entry point by sanitizer transforms.
+          TINT_ICE(Writer, diagnostics_)
+              << "module-scope variables should have been handled by the MSL "
+                 "sanitizer";
+          return false;
+        },
+        [&](const ast::Function* func) {
+          TINT_DEFER(line());
+          if (func->IsEntryPoint()) {
+            return EmitEntryPointFunction(func);
+          }
+          return EmitFunction(func);
+        },
+        [&](Default) {
+          // These are pushed into the entry point by sanitizer transforms.
+          TINT_ICE(Writer, diagnostics_)
+              << "unhandled type: " << decl->TypeInfo().name;
+          return false;
+        });
+    if (!ok) {
+      return false;
     }
   }
 
-  if (!program_->AST().TypeDecls().empty()) {
-    line();
-  }
-
-  for (auto* var : program_->AST().GlobalVariables()) {
-    if (var->is_const) {
-      if (!EmitProgramConstVariable(var)) {
-        return false;
-      }
-    } else {
-      // These are pushed into the entry point by sanitizer transforms.
-      TINT_ICE(Writer, diagnostics_) << "module-scope variables should have "
-                                        "been handled by the MSL sanitizer";
-      break;
-    }
-  }
-
-  for (auto* func : program_->AST().Functions()) {
-    if (!func->IsEntryPoint()) {
-      if (!EmitFunction(func)) {
-        return false;
-      }
-    } else {
-      if (!EmitEntryPointFunction(func)) {
-        return false;
-      }
-    }
-    line();
-  }
-
   if (!invariant_define_name_.empty()) {
     // 'invariant' attribute requires MSL 2.1 or higher.
     // WGSL can ignore the invariant attribute on pre MSL 2.1 devices.
@@ -1555,11 +1558,12 @@
         return true;
       },
       [&](const ast::SintLiteralExpression* l) {
-        // MSL (and C++) parse `-2147483648` as a `long` because it parses unary
-        // minus and `2147483648` as separate tokens, and the latter doesn't
-        // fit into an (32-bit) `int`. WGSL, OTOH, parses this as an `i32`. To
-        // avoid issues with `long` to `int` casts, emit `(2147483647 - 1)`
-        // instead, which ensures the expression type is `int`.
+        // MSL (and C++) parse `-2147483648` as a `long` because it parses
+        // unary minus and `2147483648` as separate tokens, and the latter
+        // doesn't fit into an (32-bit) `int`. WGSL, OTOH, parses this as an
+        // `i32`. To avoid issues with `long` to `int` casts, emit
+        // `(2147483647 - 1)` instead, which ensures the expression type is
+        // `int`.
         const auto int_min = std::numeric_limits<int32_t>::min();
         if (l->ValueAsI32() == int_min) {
           out << "(" << int_min + 1 << " - 1)";
@@ -1741,8 +1745,8 @@
 bool GeneratorImpl::EmitEntryPointFunction(const ast::Function* func) {
   auto func_name = program_->Symbols().NameFor(func->symbol);
 
-  // Returns the binding index of a variable, requiring that the group attribute
-  // have a value of zero.
+  // Returns the binding index of a variable, requiring that the group
+  // attribute have a value of zero.
   const uint32_t kInvalidBindingIndex = std::numeric_limits<uint32_t>::max();
   auto get_binding_index = [&](const ast::Variable* var) -> uint32_t {
     auto bp = var->BindingPoint();
@@ -1923,14 +1927,14 @@
     }
   }
 
-  // If the for-loop has a multi-statement conditional and / or continuing, then
-  // we cannot emit this as a regular for-loop in MSL. Instead we need to
+  // If the for-loop has a multi-statement conditional and / or continuing,
+  // then we cannot emit this as a regular for-loop in MSL. Instead we need to
   // generate a `while(true)` loop.
   bool emit_as_loop = cond_pre.lines.size() > 0 || cont_buf.lines.size() > 1;
 
-  // If the for-loop has multi-statement initializer, or is going to be emitted
-  // as a `while(true)` loop, then declare the initializer statement(s) before
-  // the loop in a new block.
+  // If the for-loop has multi-statement initializer, or is going to be
+  // emitted as a `while(true)` loop, then declare the initializer
+  // statement(s) before the loop in a new block.
   bool nest_in_block =
       init_buf.lines.size() > 1 || (stmt->initializer && emit_as_loop);
   if (nest_in_block) {
diff --git a/src/writer/msl/generator_impl_function_test.cc b/src/writer/msl/generator_impl_function_test.cc
index c9a2f0d..ccfd3ec 100644
--- a/src/writer/msl/generator_impl_function_test.cc
+++ b/src/writer/msl/generator_impl_function_test.cc
@@ -107,6 +107,7 @@
 struct tint_symbol_1 {
   float foo [[user(locn0)]];
 };
+
 struct tint_symbol_2 {
   float value [[color(1)]];
 };
@@ -207,15 +208,12 @@
   float col2;
   float4 pos;
 };
+
 struct tint_symbol {
   float col1 [[user(locn1)]];
   float col2 [[user(locn2)]];
   float4 pos [[position]];
 };
-struct tint_symbol_2 {
-  float col1 [[user(locn1)]];
-  float col2 [[user(locn2)]];
-};
 
 Interface vert_main_inner() {
   Interface const tint_symbol_3 = {.col1=0.5f, .col2=0.25f, .pos=float4()};
@@ -231,6 +229,11 @@
   return wrapper_result;
 }
 
+struct tint_symbol_2 {
+  float col1 [[user(locn1)]];
+  float col2 [[user(locn2)]];
+};
+
 void frag_main_inner(Interface colors) {
   float const r = colors.col1;
   float const g = colors.col2;
@@ -285,18 +288,16 @@
 struct VertexOutput {
   float4 pos;
 };
-struct tint_symbol {
-  float4 pos [[position]];
-};
-struct tint_symbol_1 {
-  float4 pos [[position]];
-};
 
 VertexOutput foo(float x) {
   VertexOutput const tint_symbol_2 = {.pos=float4(x, x, x, 1.0f)};
   return tint_symbol_2;
 }
 
+struct tint_symbol {
+  float4 pos [[position]];
+};
+
 VertexOutput vert_main1_inner() {
   return foo(0.5f);
 }
@@ -308,6 +309,10 @@
   return wrapper_result;
 }
 
+struct tint_symbol_1 {
+  float4 pos [[position]];
+};
+
 VertexOutput vert_main2_inner() {
   return foo(0.25f);
 }
diff --git a/src/writer/msl/generator_impl_sanitizer_test.cc b/src/writer/msl/generator_impl_sanitizer_test.cc
index fe43458..ea11591 100644
--- a/src/writer/msl/generator_impl_sanitizer_test.cc
+++ b/src/writer/msl/generator_impl_sanitizer_test.cc
@@ -57,6 +57,7 @@
 struct tint_symbol {
   /* 0x0000 */ uint4 buffer_size[1];
 };
+
 struct my_struct {
   float a[1];
 };
@@ -103,6 +104,7 @@
 struct tint_symbol {
   /* 0x0000 */ uint4 buffer_size[1];
 };
+
 struct my_struct {
   float z;
   float a[1];
@@ -152,6 +154,7 @@
 struct tint_symbol {
   /* 0x0000 */ uint4 buffer_size[1];
 };
+
 struct my_struct {
   float a[1];
 };
@@ -208,6 +211,7 @@
 struct tint_symbol {
   /* 0x0000 */ uint4 buffer_size[2];
 };
+
 struct my_struct {
   float a[1];
 };
diff --git a/src/writer/msl/generator_impl_test.cc b/src/writer/msl/generator_impl_test.cc
index 14ba0e9..6e066bb 100644
--- a/src/writer/msl/generator_impl_test.cc
+++ b/src/writer/msl/generator_impl_test.cc
@@ -190,6 +190,7 @@
 struct tint_array_wrapper {
   float2x2 arr[4];
 };
+
 struct tint_symbol_3 {
   tint_array_wrapper m;
 };
@@ -240,9 +241,11 @@
   float2x2 m1;
   float4x4 m2;
 };
+
 struct S2 {
   S1 s;
 };
+
 struct tint_symbol_4 {
   S2 s;
 };
@@ -316,11 +319,13 @@
   float2x3 m2;
   float2x4 m3;
 };
+
 struct tint_symbol_15 {
   float3x2 m4;
   float3x3 m5;
   float3x4 m6;
 };
+
 struct tint_symbol_23 {
   float4x2 m7;
   float4x3 m8;
diff --git a/src/writer/spirv/builder.cc b/src/writer/spirv/builder.cc
index 932ae8c..8dcb271 100644
--- a/src/writer/spirv/builder.cc
+++ b/src/writer/spirv/builder.cc
@@ -31,6 +31,7 @@
 #include "src/sem/depth_texture_type.h"
 #include "src/sem/function.h"
 #include "src/sem/member_accessor_expression.h"
+#include "src/sem/module.h"
 #include "src/sem/multisampled_texture_type.h"
 #include "src/sem/reference_type.h"
 #include "src/sem/sampled_texture_type.h"
@@ -308,9 +309,12 @@
     }
   }
 
-  for (auto* func : builder_.AST().Functions()) {
-    if (!GenerateFunction(func)) {
-      return false;
+  auto* mod = builder_.Sem().Module();
+  for (auto* decl : mod->DependencyOrderedDeclarations()) {
+    if (auto* func = decl->As<ast::Function>()) {
+      if (!GenerateFunction(func)) {
+        return false;
+      }
     }
   }
 
diff --git a/test/array/assign_to_function_var.wgsl.expected.msl b/test/array/assign_to_function_var.wgsl.expected.msl
index 7abc32d..9d12733 100644
--- a/test/array/assign_to_function_var.wgsl.expected.msl
+++ b/test/array/assign_to_function_var.wgsl.expected.msl
@@ -4,18 +4,10 @@
 struct tint_array_wrapper {
   /* 0x0000 */ int4 arr[4];
 };
+
 struct S {
   /* 0x0000 */ tint_array_wrapper arr;
 };
-struct tint_array_wrapper_3 {
-  int arr[2];
-};
-struct tint_array_wrapper_2 {
-  tint_array_wrapper_3 arr[3];
-};
-struct tint_array_wrapper_1 {
-  tint_array_wrapper_2 arr[4];
-};
 
 tint_array_wrapper ret_arr() {
   tint_array_wrapper const tint_symbol = {.arr={}};
@@ -27,6 +19,18 @@
   return tint_symbol_1;
 }
 
+struct tint_array_wrapper_3 {
+  int arr[2];
+};
+
+struct tint_array_wrapper_2 {
+  tint_array_wrapper_3 arr[3];
+};
+
+struct tint_array_wrapper_1 {
+  tint_array_wrapper_2 arr[4];
+};
+
 void foo(tint_array_wrapper src_param, thread tint_array_wrapper* const tint_symbol_3, threadgroup tint_array_wrapper* const tint_symbol_4, const constant S* const tint_symbol_5, device S* const tint_symbol_6) {
   tint_array_wrapper src_function = {};
   tint_array_wrapper dst = {};
diff --git a/test/array/assign_to_private_var.wgsl.expected.msl b/test/array/assign_to_private_var.wgsl.expected.msl
index 7d8a3ab..d5127b1 100644
--- a/test/array/assign_to_private_var.wgsl.expected.msl
+++ b/test/array/assign_to_private_var.wgsl.expected.msl
@@ -4,15 +4,19 @@
 struct tint_array_wrapper {
   /* 0x0000 */ int4 arr[4];
 };
+
 struct S {
   /* 0x0000 */ tint_array_wrapper arr;
 };
+
 struct tint_array_wrapper_3 {
   int arr[2];
 };
+
 struct tint_array_wrapper_2 {
   tint_array_wrapper_3 arr[3];
 };
+
 struct tint_array_wrapper_1 {
   tint_array_wrapper_2 arr[4];
 };
diff --git a/test/array/assign_to_storage_var.wgsl.expected.msl b/test/array/assign_to_storage_var.wgsl.expected.msl
index c1a31f9..b4ba58a 100644
--- a/test/array/assign_to_storage_var.wgsl.expected.msl
+++ b/test/array/assign_to_storage_var.wgsl.expected.msl
@@ -4,18 +4,23 @@
 struct tint_array_wrapper {
   /* 0x0000 */ int4 arr[4];
 };
+
 struct S {
   /* 0x0000 */ tint_array_wrapper arr;
 };
+
 struct tint_array_wrapper_3 {
   /* 0x0000 */ int arr[2];
 };
+
 struct tint_array_wrapper_2 {
   /* 0x0000 */ tint_array_wrapper_3 arr[3];
 };
+
 struct tint_array_wrapper_1 {
   /* 0x0000 */ tint_array_wrapper_2 arr[4];
 };
+
 struct S_nested {
   /* 0x0000 */ tint_array_wrapper_1 arr;
 };
diff --git a/test/array/assign_to_subexpr.wgsl.expected.msl b/test/array/assign_to_subexpr.wgsl.expected.msl
index 9b47792..735dc30 100644
--- a/test/array/assign_to_subexpr.wgsl.expected.msl
+++ b/test/array/assign_to_subexpr.wgsl.expected.msl
@@ -4,9 +4,11 @@
 struct tint_array_wrapper {
   int arr[4];
 };
+
 struct S {
   tint_array_wrapper arr;
 };
+
 struct tint_array_wrapper_1 {
   tint_array_wrapper arr[2];
 };
diff --git a/test/array/assign_to_workgroup_var.wgsl.expected.msl b/test/array/assign_to_workgroup_var.wgsl.expected.msl
index 2c45f26..32b8290 100644
--- a/test/array/assign_to_workgroup_var.wgsl.expected.msl
+++ b/test/array/assign_to_workgroup_var.wgsl.expected.msl
@@ -4,15 +4,19 @@
 struct tint_array_wrapper {
   /* 0x0000 */ int4 arr[4];
 };
+
 struct S {
   /* 0x0000 */ tint_array_wrapper arr;
 };
+
 struct tint_array_wrapper_3 {
   int arr[2];
 };
+
 struct tint_array_wrapper_2 {
   tint_array_wrapper_3 arr[3];
 };
+
 struct tint_array_wrapper_1 {
   tint_array_wrapper_2 arr[4];
 };
diff --git a/test/array/function_parameter.wgsl.expected.msl b/test/array/function_parameter.wgsl.expected.msl
index 8cf6c26..277889e 100644
--- a/test/array/function_parameter.wgsl.expected.msl
+++ b/test/array/function_parameter.wgsl.expected.msl
@@ -4,21 +4,23 @@
 struct tint_array_wrapper {
   float arr[4];
 };
-struct tint_array_wrapper_1 {
-  tint_array_wrapper arr[3];
-};
-struct tint_array_wrapper_2 {
-  tint_array_wrapper_1 arr[2];
-};
 
 float f1(tint_array_wrapper a) {
   return a.arr[3];
 }
 
+struct tint_array_wrapper_1 {
+  tint_array_wrapper arr[3];
+};
+
 float f2(tint_array_wrapper_1 a) {
   return a.arr[2].arr[3];
 }
 
+struct tint_array_wrapper_2 {
+  tint_array_wrapper_1 arr[2];
+};
+
 float f3(tint_array_wrapper_2 a) {
   return a.arr[1].arr[2].arr[3];
 }
diff --git a/test/array/function_return_type.wgsl.expected.msl b/test/array/function_return_type.wgsl.expected.msl
index dbc3b0d..b56fe6c 100644
--- a/test/array/function_return_type.wgsl.expected.msl
+++ b/test/array/function_return_type.wgsl.expected.msl
@@ -4,23 +4,25 @@
 struct tint_array_wrapper {
   float arr[4];
 };
-struct tint_array_wrapper_1 {
-  tint_array_wrapper arr[3];
-};
-struct tint_array_wrapper_2 {
-  tint_array_wrapper_1 arr[2];
-};
 
 tint_array_wrapper f1() {
   tint_array_wrapper const tint_symbol_1 = {.arr={}};
   return tint_symbol_1;
 }
 
+struct tint_array_wrapper_1 {
+  tint_array_wrapper arr[3];
+};
+
 tint_array_wrapper_1 f2() {
   tint_array_wrapper_1 const tint_symbol_2 = {.arr={f1(), f1(), f1()}};
   return tint_symbol_2;
 }
 
+struct tint_array_wrapper_2 {
+  tint_array_wrapper_1 arr[2];
+};
+
 tint_array_wrapper_2 f3() {
   tint_array_wrapper_2 const tint_symbol_3 = {.arr={f2(), f2()}};
   return tint_symbol_3;
diff --git a/test/array/size.wgsl.expected.msl b/test/array/size.wgsl.expected.msl
index 512a9b0..0150ece 100644
--- a/test/array/size.wgsl.expected.msl
+++ b/test/array/size.wgsl.expected.msl
@@ -1,12 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
+constant int slen = 4;
+
+constant uint ulen = 4u;
+
 struct tint_array_wrapper {
   float arr[4];
 };
 
-constant int slen = 4;
-constant uint ulen = 4u;
 fragment void tint_symbol() {
   tint_array_wrapper signed_literal = {};
   tint_array_wrapper unsigned_literal = {};
diff --git a/test/array/strides.spvasm.expected.msl b/test/array/strides.spvasm.expected.msl
index 62f817c..8db28bd 100644
--- a/test/array/strides.spvasm.expected.msl
+++ b/test/array/strides.spvasm.expected.msl
@@ -5,19 +5,24 @@
   /* 0x0000 */ float el;
   /* 0x0004 */ int8_t tint_pad[4];
 };
+
 struct tint_array_wrapper {
   /* 0x0000 */ strided_arr arr[2];
 };
+
 struct tint_array_wrapper_1 {
   /* 0x0000 */ tint_array_wrapper arr[3];
 };
+
 struct strided_arr_1 {
   /* 0x0000 */ tint_array_wrapper_1 el;
   /* 0x0030 */ int8_t tint_pad_1[80];
 };
+
 struct tint_array_wrapper_2 {
   /* 0x0000 */ strided_arr_1 arr[4];
 };
+
 struct S {
   /* 0x0000 */ tint_array_wrapper_2 a;
 };
diff --git a/test/array/type_constructor.wgsl.expected.msl b/test/array/type_constructor.wgsl.expected.msl
index c7c48ac..bd40591 100644
--- a/test/array/type_constructor.wgsl.expected.msl
+++ b/test/array/type_constructor.wgsl.expected.msl
@@ -4,12 +4,15 @@
 struct tint_array_wrapper {
   int arr[4];
 };
+
 struct tint_array_wrapper_2 {
   tint_array_wrapper arr[3];
 };
+
 struct tint_array_wrapper_1 {
   tint_array_wrapper_2 arr[2];
 };
+
 struct tint_array_wrapper_3 {
   tint_array_wrapper arr[2];
 };
diff --git a/test/buffer/storage/dynamic_index/read.wgsl.expected.msl b/test/buffer/storage/dynamic_index/read.wgsl.expected.msl
index a9e2537..530148b 100644
--- a/test/buffer/storage/dynamic_index/read.wgsl.expected.msl
+++ b/test/buffer/storage/dynamic_index/read.wgsl.expected.msl
@@ -15,6 +15,7 @@
 struct tint_array_wrapper {
   /* 0x0000 */ int4 arr[4];
 };
+
 struct Inner {
   /* 0x0000 */ packed_int3 a;
   /* 0x000c */ int b;
@@ -27,6 +28,7 @@
   /* 0x0068 */ int8_t tint_pad[8];
   /* 0x0070 */ tint_array_wrapper i;
 };
+
 struct S {
   /* 0x0000 */ Inner arr[1];
 };
diff --git a/test/buffer/storage/dynamic_index/write.wgsl.expected.msl b/test/buffer/storage/dynamic_index/write.wgsl.expected.msl
index ad1753b..d2debe9 100644
--- a/test/buffer/storage/dynamic_index/write.wgsl.expected.msl
+++ b/test/buffer/storage/dynamic_index/write.wgsl.expected.msl
@@ -15,6 +15,7 @@
 struct tint_array_wrapper {
   /* 0x0000 */ int4 arr[4];
 };
+
 struct Inner {
   /* 0x0000 */ packed_int3 a;
   /* 0x000c */ int b;
@@ -27,6 +28,7 @@
   /* 0x0068 */ int8_t tint_pad[8];
   /* 0x0070 */ tint_array_wrapper i;
 };
+
 struct S {
   /* 0x0000 */ Inner arr[1];
 };
diff --git a/test/buffer/storage/static_index/read.wgsl.expected.msl b/test/buffer/storage/static_index/read.wgsl.expected.msl
index efc8a38..8a4f444 100644
--- a/test/buffer/storage/static_index/read.wgsl.expected.msl
+++ b/test/buffer/storage/static_index/read.wgsl.expected.msl
@@ -15,9 +15,11 @@
 struct Inner {
   /* 0x0000 */ int x;
 };
+
 struct tint_array_wrapper {
   /* 0x0000 */ Inner arr[4];
 };
+
 struct S {
   /* 0x0000 */ packed_int3 a;
   /* 0x000c */ int b;
diff --git a/test/buffer/storage/static_index/write.wgsl.expected.msl b/test/buffer/storage/static_index/write.wgsl.expected.msl
index a339682..95b3ff2 100644
--- a/test/buffer/storage/static_index/write.wgsl.expected.msl
+++ b/test/buffer/storage/static_index/write.wgsl.expected.msl
@@ -15,9 +15,11 @@
 struct Inner {
   /* 0x0000 */ int x;
 };
+
 struct tint_array_wrapper {
   /* 0x0000 */ Inner arr[4];
 };
+
 struct S {
   /* 0x0000 */ packed_int3 a;
   /* 0x000c */ int b;
diff --git a/test/buffer/storage/types/runtime_array.wgsl.expected.msl b/test/buffer/storage/types/runtime_array.wgsl.expected.msl
index 573d6ce..47fcb21 100644
--- a/test/buffer/storage/types/runtime_array.wgsl.expected.msl
+++ b/test/buffer/storage/types/runtime_array.wgsl.expected.msl
@@ -4,9 +4,11 @@
 struct S {
   /* 0x0000 */ float f;
 };
+
 struct tint_symbol_2 {
   /* 0x0000 */ S arr[1];
 };
+
 struct tint_symbol_4 {
   /* 0x0000 */ S arr[1];
 };
diff --git a/test/buffer/storage/types/struct.wgsl.expected.msl b/test/buffer/storage/types/struct.wgsl.expected.msl
index d5c7427..7f042b2 100644
--- a/test/buffer/storage/types/struct.wgsl.expected.msl
+++ b/test/buffer/storage/types/struct.wgsl.expected.msl
@@ -4,6 +4,7 @@
 struct Inner {
   /* 0x0000 */ float f;
 };
+
 struct S {
   /* 0x0000 */ Inner inner;
 };
diff --git a/test/buffer/uniform/dynamic_index/read.wgsl.expected.msl b/test/buffer/uniform/dynamic_index/read.wgsl.expected.msl
index fb6344f..d781b86 100644
--- a/test/buffer/uniform/dynamic_index/read.wgsl.expected.msl
+++ b/test/buffer/uniform/dynamic_index/read.wgsl.expected.msl
@@ -15,6 +15,7 @@
 struct tint_array_wrapper {
   /* 0x0000 */ int4 arr[4];
 };
+
 struct Inner {
   /* 0x0000 */ packed_int3 a;
   /* 0x000c */ int b;
@@ -29,9 +30,11 @@
   /* 0x0078 */ int8_t tint_pad[8];
   /* 0x0080 */ tint_array_wrapper k;
 };
+
 struct tint_array_wrapper_1 {
   /* 0x0000 */ Inner arr[8];
 };
+
 struct S {
   /* 0x0000 */ tint_array_wrapper_1 arr;
 };
diff --git a/test/buffer/uniform/static_index/read.wgsl.expected.msl b/test/buffer/uniform/static_index/read.wgsl.expected.msl
index 46934da..26abf26 100644
--- a/test/buffer/uniform/static_index/read.wgsl.expected.msl
+++ b/test/buffer/uniform/static_index/read.wgsl.expected.msl
@@ -16,9 +16,11 @@
   /* 0x0000 */ int x;
   /* 0x0004 */ int8_t tint_pad[12];
 };
+
 struct tint_array_wrapper {
   /* 0x0000 */ Inner arr[4];
 };
+
 struct S {
   /* 0x0000 */ packed_int3 a;
   /* 0x000c */ int b;
diff --git a/test/buffer/uniform/types/struct.wgsl.expected.msl b/test/buffer/uniform/types/struct.wgsl.expected.msl
index 4e2f5c9..41e3ae3 100644
--- a/test/buffer/uniform/types/struct.wgsl.expected.msl
+++ b/test/buffer/uniform/types/struct.wgsl.expected.msl
@@ -4,6 +4,7 @@
 struct Inner {
   /* 0x0000 */ float f;
 };
+
 struct S {
   /* 0x0000 */ Inner inner;
 };
diff --git a/test/bug/chromium/1221120.wgsl.expected.msl b/test/bug/chromium/1221120.wgsl.expected.msl
index 99330d4..0c40f2b 100644
--- a/test/bug/chromium/1221120.wgsl.expected.msl
+++ b/test/bug/chromium/1221120.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant int H = 1;
+
diff --git a/test/bug/chromium/1251009.wgsl.expected.msl b/test/bug/chromium/1251009.wgsl.expected.msl
index b958532..495192a 100644
--- a/test/bug/chromium/1251009.wgsl.expected.msl
+++ b/test/bug/chromium/1251009.wgsl.expected.msl
@@ -5,16 +5,19 @@
   uint vertex_index;
   int loc0;
 };
+
 struct VertexInputs1 {
   uint loc1;
   float4 loc3;
 };
+
 struct tint_symbol_2 {
   int loc0 [[attribute(0)]];
   uint loc1 [[attribute(1)]];
   uint loc1_1 [[attribute(2)]];
   float4 loc3 [[attribute(3)]];
 };
+
 struct tint_symbol_3 {
   float4 value [[position]];
 };
diff --git a/test/bug/chromium/1273230.wgsl.expected.msl b/test/bug/chromium/1273230.wgsl.expected.msl
index a6f5aab..0d8e7e6 100644
--- a/test/bug/chromium/1273230.wgsl.expected.msl
+++ b/test/bug/chromium/1273230.wgsl.expected.msl
@@ -32,6 +32,14 @@
   return vec<T, M>(lhs) * rhs;
 }
 
+void marg8uintin() {
+  isnormal(4.0f);
+  isnormal(float4());
+  isnormal(0.0f);
+  isnormal(4.0f);
+  isnormal(2.0f);
+}
+
 struct Uniforms {
   /* 0x0000 */ uint numTriangles;
   /* 0x0004 */ uint gridSize;
@@ -42,6 +50,7 @@
   /* 0x0020 */ packed_float3 bbMax;
   /* 0x002c */ int8_t tint_pad_1[4];
 };
+
 struct Dbg {
   /* 0x0000 */ atomic_uint offsetCounter;
   /* 0x0004 */ uint pad0;
@@ -56,30 +65,27 @@
   /* 0x0028 */ float value_f32_2;
   /* 0x002c */ float value_f32_3;
 };
+
 struct F32s {
   /* 0x0000 */ float values[1];
 };
+
 struct U32s {
   /* 0x0000 */ uint values[1];
 };
+
 struct I32s {
   int values[1];
 };
+
 struct AU32s {
   /* 0x0000 */ atomic_uint values[1];
 };
+
 struct AI32s {
   /* 0x0000 */ atomic_int values[1];
 };
 
-void marg8uintin() {
-  isnormal(4.0f);
-  isnormal(float4());
-  isnormal(0.0f);
-  isnormal(4.0f);
-  isnormal(2.0f);
-}
-
 float3 toVoxelPos(float3 position, const constant Uniforms* const tint_symbol) {
   float3 bbMin = float3((*(tint_symbol)).bbMin[0], (*(tint_symbol)).bbMin[1], (*(tint_symbol)).bbMin[2]);
   float3 bbMax = float3((*(tint_symbol)).bbMax[0], (*(tint_symbol)).bbMax[1], (*(tint_symbol)).bbMax[2]);
diff --git a/test/bug/chromium/1273451.wgsl.expected.msl b/test/bug/chromium/1273451.wgsl.expected.msl
index 5d5fcf6..5510459 100644
--- a/test/bug/chromium/1273451.wgsl.expected.msl
+++ b/test/bug/chromium/1273451.wgsl.expected.msl
@@ -4,6 +4,7 @@
 struct A {
   int a;
 };
+
 struct B {
   int b;
 };
diff --git a/test/bug/chromium/1290107.wgsl.expected.msl b/test/bug/chromium/1290107.wgsl.expected.msl
index 4255195..5b9d426 100644
--- a/test/bug/chromium/1290107.wgsl.expected.msl
+++ b/test/bug/chromium/1290107.wgsl.expected.msl
@@ -4,6 +4,7 @@
 struct tint_symbol_1 {
   /* 0x0000 */ uint4 buffer_size[1];
 };
+
 struct S {
   float f;
 };
diff --git a/test/bug/dawn/947.wgsl.expected.msl b/test/bug/dawn/947.wgsl.expected.msl
index c33e0f5..22bfdd3 100644
--- a/test/bug/dawn/947.wgsl.expected.msl
+++ b/test/bug/dawn/947.wgsl.expected.msl
@@ -5,23 +5,20 @@
   /* 0x0000 */ float2 u_scale;
   /* 0x0008 */ float2 u_offset;
 };
+
 struct VertexOutputs {
   float2 texcoords;
   float4 position;
 };
+
 struct tint_symbol {
   float2 texcoords [[user(locn0)]];
   float4 position [[position]];
 };
+
 struct tint_array_wrapper {
   float2 arr[3];
 };
-struct tint_symbol_2 {
-  float2 texcoord [[user(locn0)]];
-};
-struct tint_symbol_3 {
-  float4 value [[color(0)]];
-};
 
 VertexOutputs vs_main_inner(uint VertexIndex, const constant Uniforms* const tint_symbol_4) {
   tint_array_wrapper texcoord = {.arr={float2(-0.5f, 0.0f), float2(1.5f, 0.0f), float2(0.5f, 2.0f)}};
@@ -44,6 +41,14 @@
   return wrapper_result;
 }
 
+struct tint_symbol_2 {
+  float2 texcoord [[user(locn0)]];
+};
+
+struct tint_symbol_3 {
+  float4 value [[color(0)]];
+};
+
 float4 fs_main_inner(float2 texcoord, texture2d<float, access::sample> tint_symbol_6, sampler tint_symbol_7) {
   float2 clampedTexcoord = clamp(texcoord, float2(0.0f, 0.0f), float2(1.0f, 1.0f));
   if (!(all((clampedTexcoord == texcoord)))) {
diff --git a/test/bug/fxc/dyn_array_idx/read/function.wgsl.expected.msl b/test/bug/fxc/dyn_array_idx/read/function.wgsl.expected.msl
index 706ba1b..271eaa1 100644
--- a/test/bug/fxc/dyn_array_idx/read/function.wgsl.expected.msl
+++ b/test/bug/fxc/dyn_array_idx/read/function.wgsl.expected.msl
@@ -4,12 +4,15 @@
 struct UBO {
   /* 0x0000 */ int dynamic_idx;
 };
+
 struct tint_array_wrapper {
   int arr[64];
 };
+
 struct S {
   tint_array_wrapper data;
 };
+
 struct Result {
   /* 0x0000 */ int out;
 };
diff --git a/test/bug/fxc/dyn_array_idx/read/private.wgsl.expected.msl b/test/bug/fxc/dyn_array_idx/read/private.wgsl.expected.msl
index bf3dbcc..00b6f03 100644
--- a/test/bug/fxc/dyn_array_idx/read/private.wgsl.expected.msl
+++ b/test/bug/fxc/dyn_array_idx/read/private.wgsl.expected.msl
@@ -4,12 +4,15 @@
 struct UBO {
   /* 0x0000 */ int dynamic_idx;
 };
+
 struct tint_array_wrapper {
   int arr[64];
 };
+
 struct S {
   tint_array_wrapper data;
 };
+
 struct Result {
   /* 0x0000 */ int out;
 };
diff --git a/test/bug/fxc/dyn_array_idx/read/storage.wgsl.expected.msl b/test/bug/fxc/dyn_array_idx/read/storage.wgsl.expected.msl
index d4ccc83..92fb6e6 100644
--- a/test/bug/fxc/dyn_array_idx/read/storage.wgsl.expected.msl
+++ b/test/bug/fxc/dyn_array_idx/read/storage.wgsl.expected.msl
@@ -4,12 +4,15 @@
 struct UBO {
   /* 0x0000 */ int dynamic_idx;
 };
+
 struct Result {
   /* 0x0000 */ int out;
 };
+
 struct tint_array_wrapper {
   /* 0x0000 */ int arr[4];
 };
+
 struct SSBO {
   /* 0x0000 */ tint_array_wrapper data;
 };
diff --git a/test/bug/fxc/dyn_array_idx/read/uniform.wgsl.expected.msl b/test/bug/fxc/dyn_array_idx/read/uniform.wgsl.expected.msl
index 3721713..48d71be 100644
--- a/test/bug/fxc/dyn_array_idx/read/uniform.wgsl.expected.msl
+++ b/test/bug/fxc/dyn_array_idx/read/uniform.wgsl.expected.msl
@@ -4,11 +4,13 @@
 struct tint_array_wrapper {
   /* 0x0000 */ int4 arr[4];
 };
+
 struct UBO {
   /* 0x0000 */ tint_array_wrapper data;
   /* 0x0040 */ int dynamic_idx;
   /* 0x0044 */ int8_t tint_pad[12];
 };
+
 struct Result {
   /* 0x0000 */ int out;
 };
diff --git a/test/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.msl b/test/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.msl
index b0fe81b..b4746d6 100644
--- a/test/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.msl
+++ b/test/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.msl
@@ -4,12 +4,15 @@
 struct UBO {
   /* 0x0000 */ int dynamic_idx;
 };
+
 struct tint_array_wrapper {
   int arr[64];
 };
+
 struct S {
   tint_array_wrapper data;
 };
+
 struct Result {
   /* 0x0000 */ int out;
 };
diff --git a/test/bug/fxc/dyn_array_idx/write/function.wgsl.expected.msl b/test/bug/fxc/dyn_array_idx/write/function.wgsl.expected.msl
index 4f216ae..c4e1dff 100644
--- a/test/bug/fxc/dyn_array_idx/write/function.wgsl.expected.msl
+++ b/test/bug/fxc/dyn_array_idx/write/function.wgsl.expected.msl
@@ -4,12 +4,15 @@
 struct UBO {
   /* 0x0000 */ int dynamic_idx;
 };
+
 struct tint_array_wrapper {
   int arr[64];
 };
+
 struct S {
   tint_array_wrapper data;
 };
+
 struct Result {
   /* 0x0000 */ int out;
 };
diff --git a/test/bug/fxc/dyn_array_idx/write/function_via_param.wgsl.expected.msl b/test/bug/fxc/dyn_array_idx/write/function_via_param.wgsl.expected.msl
index 91709e3..b9efff8 100644
--- a/test/bug/fxc/dyn_array_idx/write/function_via_param.wgsl.expected.msl
+++ b/test/bug/fxc/dyn_array_idx/write/function_via_param.wgsl.expected.msl
@@ -4,12 +4,15 @@
 struct UBO {
   /* 0x0000 */ int dynamic_idx;
 };
+
 struct tint_array_wrapper {
   int arr[64];
 };
+
 struct S {
   tint_array_wrapper data;
 };
+
 struct Result {
   /* 0x0000 */ int out;
 };
diff --git a/test/bug/fxc/dyn_array_idx/write/private.wgsl.expected.msl b/test/bug/fxc/dyn_array_idx/write/private.wgsl.expected.msl
index 8e7cc1c..2a59ee4 100644
--- a/test/bug/fxc/dyn_array_idx/write/private.wgsl.expected.msl
+++ b/test/bug/fxc/dyn_array_idx/write/private.wgsl.expected.msl
@@ -4,12 +4,15 @@
 struct UBO {
   /* 0x0000 */ int dynamic_idx;
 };
+
 struct tint_array_wrapper {
   int arr[64];
 };
+
 struct S {
   tint_array_wrapper data;
 };
+
 struct Result {
   /* 0x0000 */ int out;
 };
diff --git a/test/bug/fxc/dyn_array_idx/write/private_via_param.wgsl.expected.msl b/test/bug/fxc/dyn_array_idx/write/private_via_param.wgsl.expected.msl
index e9712d1..a27679e 100644
--- a/test/bug/fxc/dyn_array_idx/write/private_via_param.wgsl.expected.msl
+++ b/test/bug/fxc/dyn_array_idx/write/private_via_param.wgsl.expected.msl
@@ -4,12 +4,15 @@
 struct UBO {
   /* 0x0000 */ int dynamic_idx;
 };
+
 struct tint_array_wrapper {
   int arr[64];
 };
+
 struct S {
   tint_array_wrapper data;
 };
+
 struct Result {
   /* 0x0000 */ int out;
 };
diff --git a/test/bug/fxc/dyn_array_idx/write/storage.wgsl.expected.msl b/test/bug/fxc/dyn_array_idx/write/storage.wgsl.expected.msl
index bcae6be..ca1afb5 100644
--- a/test/bug/fxc/dyn_array_idx/write/storage.wgsl.expected.msl
+++ b/test/bug/fxc/dyn_array_idx/write/storage.wgsl.expected.msl
@@ -4,12 +4,15 @@
 struct UBO {
   /* 0x0000 */ int dynamic_idx;
 };
+
 struct Result {
   /* 0x0000 */ int out;
 };
+
 struct tint_array_wrapper {
   /* 0x0000 */ int arr[4];
 };
+
 struct SSBO {
   /* 0x0000 */ tint_array_wrapper data;
 };
diff --git a/test/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.msl b/test/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.msl
index 42f5aaf..1f436cd 100644
--- a/test/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.msl
+++ b/test/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.msl
@@ -4,12 +4,15 @@
 struct UBO {
   /* 0x0000 */ int dynamic_idx;
 };
+
 struct tint_array_wrapper {
   int arr[64];
 };
+
 struct S {
   tint_array_wrapper data;
 };
+
 struct Result {
   /* 0x0000 */ int out;
 };
diff --git a/test/bug/fxc/gradient_in_varying_loop/1112.wgsl.expected.msl b/test/bug/fxc/gradient_in_varying_loop/1112.wgsl.expected.msl
index 7ac38ae..3b00074 100644
--- a/test/bug/fxc/gradient_in_varying_loop/1112.wgsl.expected.msl
+++ b/test/bug/fxc/gradient_in_varying_loop/1112.wgsl.expected.msl
@@ -4,6 +4,7 @@
 struct tint_symbol_2 {
   float2 vUV [[user(locn0)]];
 };
+
 struct tint_symbol_3 {
   float4 value [[color(0)]];
 };
diff --git a/test/bug/fxc/indexed_assign_to_array_in_struct/1206.wgsl.expected.msl b/test/bug/fxc/indexed_assign_to_array_in_struct/1206.wgsl.expected.msl
index 96ff937..de2ff47 100644
--- a/test/bug/fxc/indexed_assign_to_array_in_struct/1206.wgsl.expected.msl
+++ b/test/bug/fxc/indexed_assign_to_array_in_struct/1206.wgsl.expected.msl
@@ -15,9 +15,11 @@
 struct Simulation {
   /* 0x0000 */ uint i;
 };
+
 struct tint_array_wrapper {
   /* 0x0000 */ float3 arr[8];
 };
+
 struct Particle {
   /* 0x0000 */ tint_array_wrapper position;
   /* 0x0080 */ float lifetime;
@@ -26,6 +28,7 @@
   /* 0x00a0 */ packed_float3 velocity;
   /* 0x00ac */ int8_t tint_pad_1[4];
 };
+
 struct Particles {
   /* 0x0000 */ Particle p[1];
 };
diff --git a/test/bug/tint/1046.wgsl.expected.msl b/test/bug/tint/1046.wgsl.expected.msl
index 0764188..feb5d4d 100644
--- a/test/bug/tint/1046.wgsl.expected.msl
+++ b/test/bug/tint/1046.wgsl.expected.msl
@@ -4,9 +4,11 @@
 struct PointLight {
   float4 position;
 };
+
 struct PointLights {
   PointLight values[1];
 };
+
 struct Uniforms {
   /* 0x0000 */ float4x4 worldView;
   /* 0x0040 */ float4x4 proj;
@@ -15,6 +17,7 @@
   /* 0x0088 */ int8_t tint_pad[8];
   /* 0x0090 */ float4 color;
 };
+
 struct FragmentInput {
   float4 position;
   float4 view_position;
@@ -22,18 +25,10 @@
   float2 uv;
   float4 color;
 };
+
 struct FragmentOutput {
   float4 color;
 };
-struct tint_symbol_3 {
-  float4 view_position [[user(locn0)]];
-  float4 normal [[user(locn1)]];
-  float2 uv [[user(locn2)]];
-  float4 color [[user(locn3)]];
-};
-struct tint_symbol_4 {
-  float4 color [[color(0)]];
-};
 
 float4 getColor(FragmentInput tint_symbol, const constant Uniforms* const tint_symbol_6, texture2d<float, access::sample> tint_symbol_7, sampler tint_symbol_8) {
   float4 color = 0.0f;
@@ -56,6 +51,17 @@
   return color;
 }
 
+struct tint_symbol_3 {
+  float4 view_position [[user(locn0)]];
+  float4 normal [[user(locn1)]];
+  float2 uv [[user(locn2)]];
+  float4 color [[user(locn3)]];
+};
+
+struct tint_symbol_4 {
+  float4 color [[color(0)]];
+};
+
 FragmentOutput tint_symbol_1_inner(FragmentInput tint_symbol) {
   FragmentOutput output = {};
   output.color = float4(1.0f, 0.0f, 0.0f, 1.0f);
diff --git a/test/bug/tint/1076.wgsl.expected.msl b/test/bug/tint/1076.wgsl.expected.msl
index e187033..926bbcb 100644
--- a/test/bug/tint/1076.wgsl.expected.msl
+++ b/test/bug/tint/1076.wgsl.expected.msl
@@ -5,10 +5,12 @@
   float a;
   uint mask;
 };
+
 struct tint_symbol_2 {
   float a [[user(locn0)]];
   float b [[user(locn1)]];
 };
+
 struct tint_symbol_3 {
   float a [[color(0)]];
   uint mask [[sample_mask]];
diff --git a/test/bug/tint/1081.wgsl.expected.msl b/test/bug/tint/1081.wgsl.expected.msl
index 3dd9601..34ebe0c 100644
--- a/test/bug/tint/1081.wgsl.expected.msl
+++ b/test/bug/tint/1081.wgsl.expected.msl
@@ -1,13 +1,6 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol_2 {
-  int3 x [[user(locn1)]] [[flat]];
-};
-struct tint_symbol_3 {
-  int value [[color(2)]];
-};
-
 int f(int x) {
   if ((x == 10)) {
     discard_fragment();
@@ -15,6 +8,14 @@
   return x;
 }
 
+struct tint_symbol_2 {
+  int3 x [[user(locn1)]] [[flat]];
+};
+
+struct tint_symbol_3 {
+  int value [[color(2)]];
+};
+
 int tint_symbol_inner(int3 x) {
   int y = x[0];
   while (true) {
diff --git a/test/bug/tint/1088.spvasm.expected.msl b/test/bug/tint/1088.spvasm.expected.msl
index 1f074d5..b2533c6 100644
--- a/test/bug/tint/1088.spvasm.expected.msl
+++ b/test/bug/tint/1088.spvasm.expected.msl
@@ -4,13 +4,16 @@
 struct tint_array_wrapper {
   /* 0x0000 */ float4x4 arr[2];
 };
+
 struct strided_arr {
   /* 0x0000 */ float el;
   /* 0x0004 */ int8_t tint_pad[12];
 };
+
 struct tint_array_wrapper_1 {
   /* 0x0000 */ strided_arr arr[4];
 };
+
 struct LeftOver {
   /* 0x0000 */ float4x4 worldViewProjection;
   /* 0x0040 */ float time;
@@ -18,19 +21,6 @@
   /* 0x0050 */ tint_array_wrapper test2;
   /* 0x00d0 */ tint_array_wrapper_1 test;
 };
-struct main_out {
-  float4 gl_Position;
-  float2 vUV_1;
-};
-struct tint_symbol_2 {
-  float3 position_param [[attribute(0)]];
-  float3 normal_param [[attribute(1)]];
-  float2 uv_param [[attribute(2)]];
-};
-struct tint_symbol_3 {
-  float2 vUV_1 [[user(locn0)]];
-  float4 gl_Position [[position]];
-};
 
 void main_1(thread float3* const tint_symbol_5, const constant LeftOver* const tint_symbol_6, thread float4* const tint_symbol_7, thread float2* const tint_symbol_8, thread float2* const tint_symbol_9) {
   float4 q = 0.0f;
@@ -57,6 +47,22 @@
   return;
 }
 
+struct main_out {
+  float4 gl_Position;
+  float2 vUV_1;
+};
+
+struct tint_symbol_2 {
+  float3 position_param [[attribute(0)]];
+  float3 normal_param [[attribute(1)]];
+  float2 uv_param [[attribute(2)]];
+};
+
+struct tint_symbol_3 {
+  float2 vUV_1 [[user(locn0)]];
+  float4 gl_Position [[position]];
+};
+
 main_out tint_symbol_inner(float3 position_param, float2 uv_param, float3 normal_param, thread float3* const tint_symbol_10, thread float2* const tint_symbol_11, thread float3* const tint_symbol_12, const constant LeftOver* const tint_symbol_13, thread float4* const tint_symbol_14, thread float2* const tint_symbol_15) {
   *(tint_symbol_10) = position_param;
   *(tint_symbol_11) = uv_param;
diff --git a/test/bug/tint/1113.wgsl.expected.msl b/test/bug/tint/1113.wgsl.expected.msl
index 21d92de..1cbf979 100644
--- a/test/bug/tint/1113.wgsl.expected.msl
+++ b/test/bug/tint/1113.wgsl.expected.msl
@@ -22,6 +22,7 @@
   /* 0x0020 */ packed_float3 bbMax;
   /* 0x002c */ int8_t tint_pad_1[4];
 };
+
 struct Dbg {
   /* 0x0000 */ atomic_uint offsetCounter;
   /* 0x0004 */ uint pad0;
@@ -36,18 +37,23 @@
   /* 0x0028 */ float value_f32_2;
   /* 0x002c */ float value_f32_3;
 };
+
 struct F32s {
   /* 0x0000 */ float values[1];
 };
+
 struct U32s {
   /* 0x0000 */ uint values[1];
 };
+
 struct I32s {
   int values[1];
 };
+
 struct AU32s {
   /* 0x0000 */ atomic_uint values[1];
 };
+
 struct AI32s {
   /* 0x0000 */ atomic_int values[1];
 };
diff --git a/test/bug/tint/1121.wgsl.expected.msl b/test/bug/tint/1121.wgsl.expected.msl
index 6497723..8ac140b 100644
--- a/test/bug/tint/1121.wgsl.expected.msl
+++ b/test/bug/tint/1121.wgsl.expected.msl
@@ -17,22 +17,28 @@
   /* 0x0010 */ packed_float3 color;
   /* 0x001c */ float radius;
 };
+
 struct LightsBuffer {
   /* 0x0000 */ LightData lights[1];
 };
+
 struct tint_array_wrapper {
   /* 0x0000 */ uint arr[64];
 };
+
 struct TileLightIdData {
   /* 0x0000 */ atomic_uint count;
   /* 0x0004 */ tint_array_wrapper lightId;
 };
+
 struct tint_array_wrapper_1 {
   /* 0x0000 */ TileLightIdData arr[4];
 };
+
 struct Tiles {
   /* 0x0000 */ tint_array_wrapper_1 data;
 };
+
 struct Config {
   /* 0x0000 */ uint numLights;
   /* 0x0004 */ uint numTiles;
@@ -41,6 +47,7 @@
   /* 0x0010 */ uint numTileLightSlot;
   /* 0x0014 */ uint tileSize;
 };
+
 struct Uniforms {
   /* 0x0000 */ float4 min;
   /* 0x0010 */ float4 max;
@@ -48,6 +55,7 @@
   /* 0x0060 */ float4x4 projectionMatrix;
   /* 0x00a0 */ float4 fullScreenSize;
 };
+
 struct tint_array_wrapper_2 {
   float4 arr[6];
 };
diff --git a/test/bug/tint/1321.wgsl.expected.msl b/test/bug/tint/1321.wgsl.expected.msl
index fc79791..8f72f2a 100644
--- a/test/bug/tint/1321.wgsl.expected.msl
+++ b/test/bug/tint/1321.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_array_wrapper {
-  float arr[4];
-};
-
 int foo() {
   return 1;
 }
 
+struct tint_array_wrapper {
+  float arr[4];
+};
+
 fragment void tint_symbol() {
   tint_array_wrapper arr = {.arr={}};
   int const a_save = foo();
diff --git a/test/bug/tint/221.wgsl.expected.msl b/test/bug/tint/221.wgsl.expected.msl
index 28da854..880fc07 100644
--- a/test/bug/tint/221.wgsl.expected.msl
+++ b/test/bug/tint/221.wgsl.expected.msl
@@ -4,6 +4,7 @@
 struct tint_array_wrapper {
   /* 0x0000 */ uint arr[50];
 };
+
 struct Buf {
   /* 0x0000 */ uint count;
   /* 0x0004 */ tint_array_wrapper data;
diff --git a/test/bug/tint/294.wgsl.expected.msl b/test/bug/tint/294.wgsl.expected.msl
index 0a1427c..09c1cf5 100644
--- a/test/bug/tint/294.wgsl.expected.msl
+++ b/test/bug/tint/294.wgsl.expected.msl
@@ -5,6 +5,7 @@
   float3 position;
   float3 colour;
 };
+
 struct Lights {
   Light light[1];
 };
diff --git a/test/bug/tint/403.wgsl.expected.msl b/test/bug/tint/403.wgsl.expected.msl
index 6f50135..caff5f3 100644
--- a/test/bug/tint/403.wgsl.expected.msl
+++ b/test/bug/tint/403.wgsl.expected.msl
@@ -4,12 +4,15 @@
 struct vertexUniformBuffer1 {
   /* 0x0000 */ float2x2 transform1;
 };
+
 struct vertexUniformBuffer2 {
   /* 0x0000 */ float2x2 transform2;
 };
+
 struct tint_symbol_1 {
   float4 value [[position]];
 };
+
 struct tint_array_wrapper {
   float2 arr[3];
 };
diff --git a/test/bug/tint/534.wgsl.expected.msl b/test/bug/tint/534.wgsl.expected.msl
index 3789fa4..a2b235f 100644
--- a/test/bug/tint/534.wgsl.expected.msl
+++ b/test/bug/tint/534.wgsl.expected.msl
@@ -7,6 +7,7 @@
   /* 0x0008 */ uint isRGB10A2Unorm;
   /* 0x000c */ uint channelCount;
 };
+
 struct OutputBuf {
   /* 0x0000 */ uint result[1];
 };
diff --git a/test/bug/tint/744.wgsl.expected.msl b/test/bug/tint/744.wgsl.expected.msl
index 6a70809..c4dc5b4 100644
--- a/test/bug/tint/744.wgsl.expected.msl
+++ b/test/bug/tint/744.wgsl.expected.msl
@@ -6,6 +6,7 @@
   /* 0x0008 */ uint2 bShape;
   /* 0x0010 */ uint2 outShape;
 };
+
 struct Matrix {
   /* 0x0000 */ uint numbers[1];
 };
diff --git a/test/bug/tint/749.spvasm.expected.msl b/test/bug/tint/749.spvasm.expected.msl
index c0772d1..1349abd 100644
--- a/test/bug/tint/749.spvasm.expected.msl
+++ b/test/bug/tint/749.spvasm.expected.msl
@@ -4,18 +4,14 @@
 struct tint_array_wrapper {
   int arr[10];
 };
+
 struct QuicksortObject {
   tint_array_wrapper numbers;
 };
+
 struct buf0 {
   /* 0x0000 */ float2 resolution;
 };
-struct main_out {
-  float4 x_GLF_color_1;
-};
-struct tint_symbol_1 {
-  float4 x_GLF_color_1 [[color(0)]];
-};
 
 void swap_i1_i1_(thread int* const i, thread int* const j, thread QuicksortObject* const tint_symbol_81) {
   int temp = 0;
@@ -1547,6 +1543,14 @@
   return;
 }
 
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct tint_symbol_1 {
+  float4 x_GLF_color_1 [[color(0)]];
+};
+
 main_out tint_symbol_inner(float4 gl_FragCoord_param, thread float4* const tint_symbol_88, thread QuicksortObject* const tint_symbol_89, const constant buf0* const tint_symbol_90, thread float4* const tint_symbol_91) {
   *(tint_symbol_88) = gl_FragCoord_param;
   main_1(tint_symbol_89, tint_symbol_88, tint_symbol_90, tint_symbol_91);
diff --git a/test/bug/tint/757.wgsl.expected.msl b/test/bug/tint/757.wgsl.expected.msl
index b06bf8d..35bf540 100644
--- a/test/bug/tint/757.wgsl.expected.msl
+++ b/test/bug/tint/757.wgsl.expected.msl
@@ -4,6 +4,7 @@
 struct Constants {
   int level;
 };
+
 struct Result {
   /* 0x0000 */ float values[1];
 };
diff --git a/test/bug/tint/824.wgsl.expected.msl b/test/bug/tint/824.wgsl.expected.msl
index 2f4f000..d5f6cb3 100644
--- a/test/bug/tint/824.wgsl.expected.msl
+++ b/test/bug/tint/824.wgsl.expected.msl
@@ -5,13 +5,16 @@
   float4 Position;
   float4 color;
 };
+
 struct tint_symbol_1 {
   float4 color [[user(locn0)]];
   float4 Position [[position]];
 };
+
 struct tint_array_wrapper {
   float2 arr[4];
 };
+
 struct tint_array_wrapper_1 {
   float4 arr[4];
 };
diff --git a/test/bug/tint/827.wgsl.expected.msl b/test/bug/tint/827.wgsl.expected.msl
index d144792..191dd2b 100644
--- a/test/bug/tint/827.wgsl.expected.msl
+++ b/test/bug/tint/827.wgsl.expected.msl
@@ -6,6 +6,7 @@
 };
 
 constant uint width = 128u;
+
 void tint_symbol_inner(uint3 GlobalInvocationId, device Result* const tint_symbol_1, depth2d<float, access::sample> tint_symbol_2) {
   (*(tint_symbol_1)).values[((GlobalInvocationId[1] * width) + GlobalInvocationId[0])] = tint_symbol_2.read(uint2(int2(int(GlobalInvocationId[0]), int(GlobalInvocationId[1]))), 0);
 }
diff --git a/test/bug/tint/870.spvasm.expected.msl b/test/bug/tint/870.spvasm.expected.msl
index 1f0eed8..05b9e33 100644
--- a/test/bug/tint/870.spvasm.expected.msl
+++ b/test/bug/tint/870.spvasm.expected.msl
@@ -4,12 +4,14 @@
 struct tint_array_wrapper {
   /* 0x0000 */ int arr[6];
 };
+
 struct sspp962805860buildInformationS {
   /* 0x0000 */ float4 footprint;
   /* 0x0010 */ float4 offset;
   /* 0x0020 */ int essence;
   /* 0x0024 */ tint_array_wrapper orientation;
 };
+
 struct x_B4_BuildInformation {
   /* 0x0000 */ sspp962805860buildInformationS passthru;
 };
diff --git a/test/bug/tint/913.wgsl.expected.msl b/test/bug/tint/913.wgsl.expected.msl
index e4875e8..a4903fc 100644
--- a/test/bug/tint/913.wgsl.expected.msl
+++ b/test/bug/tint/913.wgsl.expected.msl
@@ -8,6 +8,7 @@
   /* 0x0010 */ uint2 dstCopyOrigin;
   /* 0x0018 */ uint2 copySize;
 };
+
 struct OutputBuf {
   /* 0x0000 */ uint result[1];
 };
diff --git a/test/bug/tint/914.wgsl.expected.msl b/test/bug/tint/914.wgsl.expected.msl
index a6830e2..1590167 100644
--- a/test/bug/tint/914.wgsl.expected.msl
+++ b/test/bug/tint/914.wgsl.expected.msl
@@ -6,27 +6,11 @@
   /* 0x0004 */ uint dimInner;
   /* 0x0008 */ uint dimBOuter;
 };
+
 struct Matrix {
   /* 0x0000 */ float numbers[1];
 };
-struct tint_array_wrapper_1 {
-  float arr[64];
-};
-struct tint_array_wrapper {
-  tint_array_wrapper_1 arr[64];
-};
-struct tint_array_wrapper_2 {
-  float arr[16];
-};
-struct tint_array_wrapper_3 {
-  float arr[4];
-};
 
-constant uint RowPerThread = 4u;
-constant uint ColPerThread = 4u;
-constant uint TileAOuter = 64u;
-constant uint TileBOuter = 64u;
-constant uint TileInner = 64u;
 float mm_readA(uint row, uint col, const constant Uniforms* const tint_symbol_1, const device Matrix* const tint_symbol_2) {
   if (((row < (*(tint_symbol_1)).dimAOuter) && (col < (*(tint_symbol_1)).dimInner))) {
     float const result = (*(tint_symbol_2)).numbers[((row * (*(tint_symbol_1)).dimInner) + col)];
@@ -50,6 +34,32 @@
   }
 }
 
+constant uint RowPerThread = 4u;
+
+constant uint ColPerThread = 4u;
+
+constant uint TileAOuter = 64u;
+
+constant uint TileBOuter = 64u;
+
+constant uint TileInner = 64u;
+
+struct tint_array_wrapper_1 {
+  float arr[64];
+};
+
+struct tint_array_wrapper {
+  tint_array_wrapper_1 arr[64];
+};
+
+struct tint_array_wrapper_2 {
+  float arr[16];
+};
+
+struct tint_array_wrapper_3 {
+  float arr[4];
+};
+
 void tint_symbol_inner(uint3 local_id, uint3 global_id, uint local_invocation_index, threadgroup tint_array_wrapper* const tint_symbol_7, threadgroup tint_array_wrapper* const tint_symbol_8, const constant Uniforms* const tint_symbol_9, const device Matrix* const tint_symbol_10, const device Matrix* const tint_symbol_11, device Matrix* const tint_symbol_12) {
   for(uint idx = local_invocation_index; (idx < 4096u); idx = (idx + 256u)) {
     uint const i = (idx / 64u);
diff --git a/test/bug/tint/922.wgsl.expected.msl b/test/bug/tint/922.wgsl.expected.msl
index 992c587..584f9e4 100644
--- a/test/bug/tint/922.wgsl.expected.msl
+++ b/test/bug/tint/922.wgsl.expected.msl
@@ -7,48 +7,44 @@
   /* 0x0020 */ float4 mz;
   /* 0x0030 */ float4 mw;
 };
+
 struct Mat4x3_ {
   /* 0x0000 */ float4 mx;
   /* 0x0010 */ float4 my;
   /* 0x0020 */ float4 mz;
 };
+
 struct Mat4x2_ {
   /* 0x0000 */ float4 mx;
   /* 0x0010 */ float4 my;
 };
+
 struct ub_SceneParams {
   /* 0x0000 */ Mat4x4_ u_Projection;
 };
+
 struct tint_array_wrapper {
   /* 0x0000 */ Mat4x2_ arr[1];
 };
+
 struct ub_MaterialParams {
   /* 0x0000 */ tint_array_wrapper u_TexMtx;
   /* 0x0020 */ float4 u_Misc0_;
 };
+
 struct tint_array_wrapper_1 {
   /* 0x0000 */ Mat4x3_ arr[32];
 };
+
 struct ub_PacketParams {
   /* 0x0000 */ tint_array_wrapper_1 u_PosMtx;
 };
+
 struct VertexOutput {
   float4 v_Color;
   float2 v_TexCoord;
   float4 member;
 };
-struct tint_symbol_2 {
-  float3 a_Position [[attribute(0)]];
-  float2 a_UV [[attribute(1)]];
-  float4 a_Color [[attribute(2)]];
-  float3 a_Normal [[attribute(3)]];
-  float a_PosMtxIdx [[attribute(4)]];
-};
-struct tint_symbol_3 {
-  float4 v_Color [[user(locn0)]];
-  float2 v_TexCoord [[user(locn1)]];
-  float4 member [[position]];
-};
 
 float3 Mat4x3GetCol0_(Mat4x3_ m) {
   Mat4x3_ m1 = {};
@@ -269,6 +265,20 @@
   }
 }
 
+struct tint_symbol_2 {
+  float3 a_Position [[attribute(0)]];
+  float2 a_UV [[attribute(1)]];
+  float4 a_Color [[attribute(2)]];
+  float3 a_Normal [[attribute(3)]];
+  float a_PosMtxIdx [[attribute(4)]];
+};
+
+struct tint_symbol_3 {
+  float4 v_Color [[user(locn0)]];
+  float2 v_TexCoord [[user(locn1)]];
+  float4 member [[position]];
+};
+
 VertexOutput tint_symbol_inner(float3 a_Position, float2 a_UV, float4 a_Color, float3 a_Normal, float a_PosMtxIdx, thread float3* const tint_symbol_16, thread float2* const tint_symbol_17, thread float4* const tint_symbol_18, thread float3* const tint_symbol_19, thread float* const tint_symbol_20, const constant ub_PacketParams* const tint_symbol_21, const constant ub_SceneParams* const tint_symbol_22, thread float4* const tint_symbol_23, thread float4* const tint_symbol_24, const constant ub_MaterialParams* const tint_symbol_25, thread float2* const tint_symbol_26) {
   *(tint_symbol_16) = a_Position;
   *(tint_symbol_17) = a_UV;
diff --git a/test/bug/tint/942.wgsl.expected.msl b/test/bug/tint/942.wgsl.expected.msl
index 519443a..3127a42 100644
--- a/test/bug/tint/942.wgsl.expected.msl
+++ b/test/bug/tint/942.wgsl.expected.msl
@@ -5,12 +5,15 @@
   /* 0x0000 */ uint filterDim;
   /* 0x0004 */ uint blockDim;
 };
+
 struct Flip {
   /* 0x0000 */ uint value;
 };
+
 struct tint_array_wrapper_1 {
   float3 arr[256];
 };
+
 struct tint_array_wrapper {
   tint_array_wrapper_1 arr[4];
 };
diff --git a/test/bug/tint/943.spvasm.expected.msl b/test/bug/tint/943.spvasm.expected.msl
index 99ab48c..648486b 100644
--- a/test/bug/tint/943.spvasm.expected.msl
+++ b/test/bug/tint/943.spvasm.expected.msl
@@ -12,30 +12,34 @@
   /* 0x003c */ int8_t tint_pad_3[4];
   /* 0x0040 */ int2 outShapeStrides;
 };
+
 struct ssbOut {
   /* 0x0000 */ float result[1];
 };
+
 struct ssbA {
   /* 0x0000 */ float A[1];
 };
+
 struct ssbB {
   /* 0x0000 */ float B[1];
 };
+
 struct tint_array_wrapper_1 {
   float arr[64];
 };
+
 struct tint_array_wrapper {
   tint_array_wrapper_1 arr[64];
 };
+
 struct tint_array_wrapper_3 {
   float arr[1];
 };
+
 struct tint_array_wrapper_2 {
   tint_array_wrapper_3 arr[64];
 };
-struct tint_array_wrapper_4 {
-  tint_array_wrapper_3 arr[1];
-};
 
 bool coordsInBounds_vi2_vi2_(thread int2* const coord, thread int2* const shape) {
   bool x_87 = false;
@@ -168,6 +172,10 @@
   return;
 }
 
+struct tint_array_wrapper_4 {
+  tint_array_wrapper_3 arr[1];
+};
+
 void mm_matMul_i1_i1_i1_(thread int* const dimAOuter, thread int* const dimInner, thread int* const dimBOuter, thread uint3* const tint_symbol_19, thread uint3* const tint_symbol_20, const constant Uniforms* const tint_symbol_21, thread int* const tint_symbol_22, thread int* const tint_symbol_23, thread int* const tint_symbol_24, const device ssbA* const tint_symbol_25, threadgroup tint_array_wrapper* const tint_symbol_26, thread int* const tint_symbol_27, const device ssbB* const tint_symbol_28, threadgroup tint_array_wrapper_2* const tint_symbol_29, device ssbOut* const tint_symbol_30) {
   int tileRow = 0;
   int tileCol = 0;
diff --git a/test/bug/tint/948.wgsl.expected.msl b/test/bug/tint/948.wgsl.expected.msl
index d4659c5..25febaf 100644
--- a/test/bug/tint/948.wgsl.expected.msl
+++ b/test/bug/tint/948.wgsl.expected.msl
@@ -25,20 +25,6 @@
   /* 0x0070 */ packed_float3 colorMul;
   /* 0x007c */ int8_t tint_pad_1[4];
 };
-struct main_out {
-  float4 glFragColor_1;
-};
-struct tint_symbol_2 {
-  float3 vPosition_param [[user(locn0)]];
-  float2 vUV_param [[user(locn1)]];
-  float2 tUV_param [[user(locn2)]];
-  float2 stageUnits_1_param [[user(locn3)]];
-  float2 levelUnits_param [[user(locn4)]];
-  float2 tileID_1_param [[user(locn5)]];
-};
-struct tint_symbol_3 {
-  float4 glFragColor_1 [[color(0)]];
-};
 
 float4x4 getFrameData_f1_(thread float* const frameID, const constant LeftOver* const tint_symbol_5, texture2d<float, access::sample> tint_symbol_6, sampler tint_symbol_7) {
   float fX = 0.0f;
@@ -204,6 +190,23 @@
   return;
 }
 
+struct main_out {
+  float4 glFragColor_1;
+};
+
+struct tint_symbol_2 {
+  float3 vPosition_param [[user(locn0)]];
+  float2 vUV_param [[user(locn1)]];
+  float2 tUV_param [[user(locn2)]];
+  float2 stageUnits_1_param [[user(locn3)]];
+  float2 levelUnits_param [[user(locn4)]];
+  float2 tileID_1_param [[user(locn5)]];
+};
+
+struct tint_symbol_3 {
+  float4 glFragColor_1 [[color(0)]];
+};
+
 main_out tint_symbol_inner(float2 tUV_param, float2 tileID_1_param, float2 levelUnits_param, float2 stageUnits_1_param, float3 vPosition_param, float2 vUV_param, thread float2* const tint_symbol_21, thread float2* const tint_symbol_22, thread float2* const tint_symbol_23, thread float2* const tint_symbol_24, thread float3* const tint_symbol_25, thread float2* const tint_symbol_26, const constant LeftOver* const tint_symbol_27, texture2d<float, access::sample> tint_symbol_28, sampler tint_symbol_29, texture2d<float, access::sample> tint_symbol_30, texture2d<float, access::sample> tint_symbol_31, sampler tint_symbol_32, thread float* const tint_symbol_33, texture2d<float, access::sample> tint_symbol_34, sampler tint_symbol_35, texture2d<float, access::sample> tint_symbol_36, sampler tint_symbol_37, thread float4* const tint_symbol_38) {
   *(tint_symbol_21) = tUV_param;
   *(tint_symbol_22) = tileID_1_param;
diff --git a/test/bug/tint/949.wgsl.expected.msl b/test/bug/tint/949.wgsl.expected.msl
index 3f023d0..fb89dec 100644
--- a/test/bug/tint/949.wgsl.expected.msl
+++ b/test/bug/tint/949.wgsl.expected.msl
@@ -16,6 +16,7 @@
   float3 diffuse;
   float3 specular;
 };
+
 struct LeftOver {
   /* 0x0000 */ float4x4 u_World;
   /* 0x0040 */ float4x4 u_ViewProjection;
@@ -28,6 +29,7 @@
   /* 0x00a4 */ uint padding_1;
   /* 0x00a8 */ float2 tangentSpaceParameter0;
 };
+
 struct Light0 {
   /* 0x0000 */ float4 vLightData;
   /* 0x0010 */ float4 vLightDiffuse;
@@ -38,18 +40,6 @@
   /* 0x0050 */ float2 depthValues;
   /* 0x0058 */ int8_t tint_pad_1[8];
 };
-struct main_out {
-  float4 glFragColor_1;
-};
-struct tint_symbol_2 {
-  float4 v_output1_param [[user(locn0)]];
-  float2 vMainuv_param [[user(locn1)]];
-  float4 v_output2_param [[user(locn2)]];
-  float2 v_uv_param [[user(locn3)]];
-};
-struct tint_symbol_3 {
-  float4 glFragColor_1 [[color(0)]];
-};
 
 float3x3 cotangent_frame_vf3_vf3_vf2_vf2_(thread float3* const normal_1, thread float3* const p, thread float2* const uv, thread float2* const tangentSpaceParams) {
   float3 dp1 = 0.0f;
@@ -425,6 +415,21 @@
   return;
 }
 
+struct main_out {
+  float4 glFragColor_1;
+};
+
+struct tint_symbol_2 {
+  float4 v_output1_param [[user(locn0)]];
+  float2 vMainuv_param [[user(locn1)]];
+  float4 v_output2_param [[user(locn2)]];
+  float2 v_uv_param [[user(locn3)]];
+};
+
+struct tint_symbol_3 {
+  float4 glFragColor_1 [[color(0)]];
+};
+
 main_out tint_symbol_inner(float2 vMainuv_param, float4 v_output1_param, bool gl_FrontFacing_param, float2 v_uv_param, float4 v_output2_param, thread float2* const tint_symbol_19, thread float4* const tint_symbol_20, thread bool* const tint_symbol_21, thread float2* const tint_symbol_22, thread float4* const tint_symbol_23, thread float* const tint_symbol_24, thread float3* const tint_symbol_25, texture2d<float, access::sample> tint_symbol_26, sampler tint_symbol_27, const constant LeftOver* const tint_symbol_28, texture2d<float, access::sample> tint_symbol_29, sampler tint_symbol_30, const constant Light0* const tint_symbol_31, thread float4* const tint_symbol_32) {
   *(tint_symbol_19) = vMainuv_param;
   *(tint_symbol_20) = v_output1_param;
diff --git a/test/bug/tint/951.spvasm.expected.msl b/test/bug/tint/951.spvasm.expected.msl
index 9234ca5..80a05a7 100644
--- a/test/bug/tint/951.spvasm.expected.msl
+++ b/test/bug/tint/951.spvasm.expected.msl
@@ -4,9 +4,11 @@
 struct ssbOut {
   /* 0x0000 */ float result[1];
 };
+
 struct ssbA {
   /* 0x0000 */ float A[1];
 };
+
 struct Uniforms {
   /* 0x0000 */ float tint_symbol;
   /* 0x0004 */ int aShape;
diff --git a/test/bug/tint/977.spvasm.expected.msl b/test/bug/tint/977.spvasm.expected.msl
index 22e9078..16062d0 100644
--- a/test/bug/tint/977.spvasm.expected.msl
+++ b/test/bug/tint/977.spvasm.expected.msl
@@ -4,12 +4,15 @@
 struct ResultMatrix {
   /* 0x0000 */ float numbers[1];
 };
+
 struct FirstMatrix {
   float numbers[1];
 };
+
 struct SecondMatrix {
   float numbers[1];
 };
+
 struct Uniforms {
   float tint_symbol;
   int sizeA;
diff --git a/test/bug/tint/978.wgsl.expected.msl b/test/bug/tint/978.wgsl.expected.msl
index 737a2bd..1db5531 100644
--- a/test/bug/tint/978.wgsl.expected.msl
+++ b/test/bug/tint/978.wgsl.expected.msl
@@ -4,12 +4,15 @@
 struct FragmentInput {
   float2 vUv;
 };
+
 struct FragmentOutput {
   float4 color;
 };
+
 struct tint_symbol_2 {
   float2 vUv [[user(locn2)]];
 };
+
 struct tint_symbol_3 {
   float4 color [[color(0)]];
 };
diff --git a/test/bug/tint/980.wgsl.expected.msl b/test/bug/tint/980.wgsl.expected.msl
index 6261f54..e00119b 100644
--- a/test/bug/tint/980.wgsl.expected.msl
+++ b/test/bug/tint/980.wgsl.expected.msl
@@ -12,17 +12,17 @@
   return vec<T, M>(lhs) * rhs;
 }
 
-struct S {
-  /* 0x0000 */ packed_float3 v;
-  /* 0x000c */ uint i;
-};
-
 float3 Bad(uint index, float3 rd) {
   float3 normal = float3(0.0f);
   normal[index] = -(sign(rd[index]));
   return normalize(normal);
 }
 
+struct S {
+  /* 0x0000 */ packed_float3 v;
+  /* 0x000c */ uint i;
+};
+
 void tint_symbol_inner(uint idx, device S* const tint_symbol_1) {
   (*(tint_symbol_1)).v = Bad((*(tint_symbol_1)).i, (*(tint_symbol_1)).v);
 }
diff --git a/test/bug/tint/993.wgsl.expected.msl b/test/bug/tint/993.wgsl.expected.msl
index c09cfed..f7e9d1c 100644
--- a/test/bug/tint/993.wgsl.expected.msl
+++ b/test/bug/tint/993.wgsl.expected.msl
@@ -4,12 +4,15 @@
 struct Constants {
   /* 0x0000 */ uint zero;
 };
+
 struct Result {
   /* 0x0000 */ uint value;
 };
+
 struct tint_array_wrapper {
   /* 0x0000 */ atomic_int arr[3];
 };
+
 struct TestData {
   /* 0x0000 */ tint_array_wrapper data;
 };
diff --git a/test/bug/tint/998.wgsl.expected.msl b/test/bug/tint/998.wgsl.expected.msl
index 3cbf551..740838e 100644
--- a/test/bug/tint/998.wgsl.expected.msl
+++ b/test/bug/tint/998.wgsl.expected.msl
@@ -4,12 +4,15 @@
 struct Constants {
   /* 0x0000 */ uint zero;
 };
+
 struct Result {
   uint value;
 };
+
 struct tint_array_wrapper {
   uint arr[3];
 };
+
 struct S {
   tint_array_wrapper data;
 };
diff --git a/test/builtins/arrayLength/complex_via_let.wgsl.expected.msl b/test/builtins/arrayLength/complex_via_let.wgsl.expected.msl
index 28a8285..537a453 100644
--- a/test/builtins/arrayLength/complex_via_let.wgsl.expected.msl
+++ b/test/builtins/arrayLength/complex_via_let.wgsl.expected.msl
@@ -4,6 +4,7 @@
 struct tint_symbol_1 {
   /* 0x0000 */ uint4 buffer_size[1];
 };
+
 struct S {
   int a[1];
 };
diff --git a/test/builtins/arrayLength/deprecated.wgsl.expected.msl b/test/builtins/arrayLength/deprecated.wgsl.expected.msl
index 90f1512..bf8e5b0 100644
--- a/test/builtins/arrayLength/deprecated.wgsl.expected.msl
+++ b/test/builtins/arrayLength/deprecated.wgsl.expected.msl
@@ -4,6 +4,7 @@
 struct tint_symbol_1 {
   /* 0x0000 */ uint4 buffer_size[1];
 };
+
 struct S {
   int a[1];
 };
diff --git a/test/builtins/arrayLength/simple.wgsl.expected.msl b/test/builtins/arrayLength/simple.wgsl.expected.msl
index 28a8285..537a453 100644
--- a/test/builtins/arrayLength/simple.wgsl.expected.msl
+++ b/test/builtins/arrayLength/simple.wgsl.expected.msl
@@ -4,6 +4,7 @@
 struct tint_symbol_1 {
   /* 0x0000 */ uint4 buffer_size[1];
 };
+
 struct S {
   int a[1];
 };
diff --git a/test/builtins/arrayLength/via_let.wgsl.expected.msl b/test/builtins/arrayLength/via_let.wgsl.expected.msl
index 28a8285..537a453 100644
--- a/test/builtins/arrayLength/via_let.wgsl.expected.msl
+++ b/test/builtins/arrayLength/via_let.wgsl.expected.msl
@@ -4,6 +4,7 @@
 struct tint_symbol_1 {
   /* 0x0000 */ uint4 buffer_size[1];
 };
+
 struct S {
   int a[1];
 };
diff --git a/test/builtins/arrayLength/via_let_complex.wgsl.expected.msl b/test/builtins/arrayLength/via_let_complex.wgsl.expected.msl
index 28a8285..537a453 100644
--- a/test/builtins/arrayLength/via_let_complex.wgsl.expected.msl
+++ b/test/builtins/arrayLength/via_let_complex.wgsl.expected.msl
@@ -4,6 +4,7 @@
 struct tint_symbol_1 {
   /* 0x0000 */ uint4 buffer_size[1];
 };
+
 struct S {
   int a[1];
 };
diff --git a/test/builtins/gen/abs/002533.wgsl.expected.msl b/test/builtins/gen/abs/002533.wgsl.expected.msl
index bc614c3..e7c6e0c 100644
--- a/test/builtins/gen/abs/002533.wgsl.expected.msl
+++ b/test/builtins/gen/abs/002533.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void abs_002533() {
   float4 res = fabs(float4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   abs_002533();
   return float4();
diff --git a/test/builtins/gen/abs/005174.wgsl.expected.msl b/test/builtins/gen/abs/005174.wgsl.expected.msl
index b37f02e..7606da6 100644
--- a/test/builtins/gen/abs/005174.wgsl.expected.msl
+++ b/test/builtins/gen/abs/005174.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void abs_005174() {
   float3 res = fabs(float3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   abs_005174();
   return float4();
diff --git a/test/builtins/gen/abs/1ce782.wgsl.expected.msl b/test/builtins/gen/abs/1ce782.wgsl.expected.msl
index 5d5f0d2..7329653 100644
--- a/test/builtins/gen/abs/1ce782.wgsl.expected.msl
+++ b/test/builtins/gen/abs/1ce782.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void abs_1ce782() {
   uint4 res = abs(uint4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   abs_1ce782();
   return float4();
diff --git a/test/builtins/gen/abs/1e9d53.wgsl.expected.msl b/test/builtins/gen/abs/1e9d53.wgsl.expected.msl
index f5c7392..7951049 100644
--- a/test/builtins/gen/abs/1e9d53.wgsl.expected.msl
+++ b/test/builtins/gen/abs/1e9d53.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void abs_1e9d53() {
   float2 res = fabs(float2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   abs_1e9d53();
   return float4();
diff --git a/test/builtins/gen/abs/467cd1.wgsl.expected.msl b/test/builtins/gen/abs/467cd1.wgsl.expected.msl
index be63d7e..421b221 100644
--- a/test/builtins/gen/abs/467cd1.wgsl.expected.msl
+++ b/test/builtins/gen/abs/467cd1.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void abs_467cd1() {
   uint res = abs(1u);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   abs_467cd1();
   return float4();
diff --git a/test/builtins/gen/abs/4ad288.wgsl.expected.msl b/test/builtins/gen/abs/4ad288.wgsl.expected.msl
index f9d5155..dcea648 100644
--- a/test/builtins/gen/abs/4ad288.wgsl.expected.msl
+++ b/test/builtins/gen/abs/4ad288.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void abs_4ad288() {
   int res = abs(1);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   abs_4ad288();
   return float4();
diff --git a/test/builtins/gen/abs/5ad50a.wgsl.expected.msl b/test/builtins/gen/abs/5ad50a.wgsl.expected.msl
index 4cdc43b..b3da1a3 100644
--- a/test/builtins/gen/abs/5ad50a.wgsl.expected.msl
+++ b/test/builtins/gen/abs/5ad50a.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void abs_5ad50a() {
   int3 res = abs(int3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   abs_5ad50a();
   return float4();
diff --git a/test/builtins/gen/abs/7326de.wgsl.expected.msl b/test/builtins/gen/abs/7326de.wgsl.expected.msl
index a7f8a4b..146626d 100644
--- a/test/builtins/gen/abs/7326de.wgsl.expected.msl
+++ b/test/builtins/gen/abs/7326de.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void abs_7326de() {
   uint3 res = abs(uint3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   abs_7326de();
   return float4();
diff --git a/test/builtins/gen/abs/7f28e6.wgsl.expected.msl b/test/builtins/gen/abs/7f28e6.wgsl.expected.msl
index c4db275..97422d7 100644
--- a/test/builtins/gen/abs/7f28e6.wgsl.expected.msl
+++ b/test/builtins/gen/abs/7f28e6.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void abs_7f28e6() {
   uint2 res = abs(uint2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   abs_7f28e6();
   return float4();
diff --git a/test/builtins/gen/abs/7faa9e.wgsl.expected.msl b/test/builtins/gen/abs/7faa9e.wgsl.expected.msl
index 074c9c0..278f9db 100644
--- a/test/builtins/gen/abs/7faa9e.wgsl.expected.msl
+++ b/test/builtins/gen/abs/7faa9e.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void abs_7faa9e() {
   int2 res = abs(int2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   abs_7faa9e();
   return float4();
diff --git a/test/builtins/gen/abs/9c80a6.wgsl.expected.msl b/test/builtins/gen/abs/9c80a6.wgsl.expected.msl
index 0cc64f1..11b838e 100644
--- a/test/builtins/gen/abs/9c80a6.wgsl.expected.msl
+++ b/test/builtins/gen/abs/9c80a6.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void abs_9c80a6() {
   int4 res = abs(int4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   abs_9c80a6();
   return float4();
diff --git a/test/builtins/gen/abs/b96037.wgsl.expected.msl b/test/builtins/gen/abs/b96037.wgsl.expected.msl
index 617a92f..9226342 100644
--- a/test/builtins/gen/abs/b96037.wgsl.expected.msl
+++ b/test/builtins/gen/abs/b96037.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void abs_b96037() {
   float res = fabs(1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   abs_b96037();
   return float4();
diff --git a/test/builtins/gen/acos/489247.wgsl.expected.msl b/test/builtins/gen/acos/489247.wgsl.expected.msl
index 1994fcb..b80a9c8 100644
--- a/test/builtins/gen/acos/489247.wgsl.expected.msl
+++ b/test/builtins/gen/acos/489247.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void acos_489247() {
   float res = acos(1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   acos_489247();
   return float4();
diff --git a/test/builtins/gen/acos/8e2acf.wgsl.expected.msl b/test/builtins/gen/acos/8e2acf.wgsl.expected.msl
index 34390f0..8595fce 100644
--- a/test/builtins/gen/acos/8e2acf.wgsl.expected.msl
+++ b/test/builtins/gen/acos/8e2acf.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void acos_8e2acf() {
   float4 res = acos(float4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   acos_8e2acf();
   return float4();
diff --git a/test/builtins/gen/acos/a610c4.wgsl.expected.msl b/test/builtins/gen/acos/a610c4.wgsl.expected.msl
index 4834011..435d150 100644
--- a/test/builtins/gen/acos/a610c4.wgsl.expected.msl
+++ b/test/builtins/gen/acos/a610c4.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void acos_a610c4() {
   float3 res = acos(float3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   acos_a610c4();
   return float4();
diff --git a/test/builtins/gen/acos/dfc915.wgsl.expected.msl b/test/builtins/gen/acos/dfc915.wgsl.expected.msl
index d6c52cf..7668f36 100644
--- a/test/builtins/gen/acos/dfc915.wgsl.expected.msl
+++ b/test/builtins/gen/acos/dfc915.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void acos_dfc915() {
   float2 res = acos(float2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   acos_dfc915();
   return float4();
diff --git a/test/builtins/gen/all/353d6a.wgsl.expected.msl b/test/builtins/gen/all/353d6a.wgsl.expected.msl
index 6b65ee4..74aff96 100644
--- a/test/builtins/gen/all/353d6a.wgsl.expected.msl
+++ b/test/builtins/gen/all/353d6a.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void all_353d6a() {
   bool res = all(bool());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   all_353d6a();
   return float4();
diff --git a/test/builtins/gen/all/986c7b.wgsl.expected.msl b/test/builtins/gen/all/986c7b.wgsl.expected.msl
index 5adaeb6..041e280 100644
--- a/test/builtins/gen/all/986c7b.wgsl.expected.msl
+++ b/test/builtins/gen/all/986c7b.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void all_986c7b() {
   bool res = all(bool4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   all_986c7b();
   return float4();
diff --git a/test/builtins/gen/all/bd2dba.wgsl.expected.msl b/test/builtins/gen/all/bd2dba.wgsl.expected.msl
index 938d92d..d6d45cf 100644
--- a/test/builtins/gen/all/bd2dba.wgsl.expected.msl
+++ b/test/builtins/gen/all/bd2dba.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void all_bd2dba() {
   bool res = all(bool3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   all_bd2dba();
   return float4();
diff --git a/test/builtins/gen/all/f46790.wgsl.expected.msl b/test/builtins/gen/all/f46790.wgsl.expected.msl
index ffe5e06..60c3c44 100644
--- a/test/builtins/gen/all/f46790.wgsl.expected.msl
+++ b/test/builtins/gen/all/f46790.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void all_f46790() {
   bool res = all(bool2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   all_f46790();
   return float4();
diff --git a/test/builtins/gen/any/083428.wgsl.expected.msl b/test/builtins/gen/any/083428.wgsl.expected.msl
index 1b403a3..a11e292 100644
--- a/test/builtins/gen/any/083428.wgsl.expected.msl
+++ b/test/builtins/gen/any/083428.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void any_083428() {
   bool res = any(bool4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   any_083428();
   return float4();
diff --git a/test/builtins/gen/any/0e3e58.wgsl.expected.msl b/test/builtins/gen/any/0e3e58.wgsl.expected.msl
index 8f7da07..1bf7505 100644
--- a/test/builtins/gen/any/0e3e58.wgsl.expected.msl
+++ b/test/builtins/gen/any/0e3e58.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void any_0e3e58() {
   bool res = any(bool2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   any_0e3e58();
   return float4();
diff --git a/test/builtins/gen/any/2ab91a.wgsl.expected.msl b/test/builtins/gen/any/2ab91a.wgsl.expected.msl
index 7fb52cf..15e8283 100644
--- a/test/builtins/gen/any/2ab91a.wgsl.expected.msl
+++ b/test/builtins/gen/any/2ab91a.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void any_2ab91a() {
   bool res = any(bool());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   any_2ab91a();
   return float4();
diff --git a/test/builtins/gen/any/e755c1.wgsl.expected.msl b/test/builtins/gen/any/e755c1.wgsl.expected.msl
index 2dbc5d4..fc6214b 100644
--- a/test/builtins/gen/any/e755c1.wgsl.expected.msl
+++ b/test/builtins/gen/any/e755c1.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void any_e755c1() {
   bool res = any(bool3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   any_e755c1();
   return float4();
diff --git a/test/builtins/gen/arrayLength/1588cd.wgsl.expected.msl b/test/builtins/gen/arrayLength/1588cd.wgsl.expected.msl
index 8835e97..1793477 100644
--- a/test/builtins/gen/arrayLength/1588cd.wgsl.expected.msl
+++ b/test/builtins/gen/arrayLength/1588cd.wgsl.expected.msl
@@ -4,17 +4,19 @@
 struct tint_symbol_1 {
   /* 0x0000 */ uint4 buffer_size[1];
 };
+
 struct SB_RO {
   int arg_0[1];
 };
-struct tint_symbol {
-  float4 value [[position]];
-};
 
 void arrayLength_1588cd(const constant tint_symbol_1* const tint_symbol_3) {
   uint res = (((*(tint_symbol_3)).buffer_size[0u][0u] - 0u) / 4u);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(const constant tint_symbol_1* const tint_symbol_4) {
   arrayLength_1588cd(tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/arrayLength/61b1c7.wgsl.expected.msl b/test/builtins/gen/arrayLength/61b1c7.wgsl.expected.msl
index 4fd3c1c..cebf66b 100644
--- a/test/builtins/gen/arrayLength/61b1c7.wgsl.expected.msl
+++ b/test/builtins/gen/arrayLength/61b1c7.wgsl.expected.msl
@@ -4,17 +4,19 @@
 struct tint_symbol_1 {
   /* 0x0000 */ uint4 buffer_size[1];
 };
+
 struct SB_RW {
   int arg_0[1];
 };
-struct tint_symbol {
-  float4 value [[position]];
-};
 
 void arrayLength_61b1c7(const constant tint_symbol_1* const tint_symbol_3) {
   uint res = (((*(tint_symbol_3)).buffer_size[0u][0u] - 0u) / 4u);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(const constant tint_symbol_1* const tint_symbol_4) {
   arrayLength_61b1c7(tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/arrayLength/a0f5ca.wgsl.expected.msl b/test/builtins/gen/arrayLength/a0f5ca.wgsl.expected.msl
index 14f2e56..a04fc9c 100644
--- a/test/builtins/gen/arrayLength/a0f5ca.wgsl.expected.msl
+++ b/test/builtins/gen/arrayLength/a0f5ca.wgsl.expected.msl
@@ -4,17 +4,19 @@
 struct tint_symbol_1 {
   /* 0x0000 */ uint4 buffer_size[1];
 };
+
 struct SB_RO {
   float arg_0[1];
 };
-struct tint_symbol {
-  float4 value [[position]];
-};
 
 void arrayLength_a0f5ca(const constant tint_symbol_1* const tint_symbol_3) {
   uint res = (((*(tint_symbol_3)).buffer_size[0u][0u] - 0u) / 4u);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(const constant tint_symbol_1* const tint_symbol_4) {
   arrayLength_a0f5ca(tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/arrayLength/cdd123.wgsl.expected.msl b/test/builtins/gen/arrayLength/cdd123.wgsl.expected.msl
index dca2023..3ba8276 100644
--- a/test/builtins/gen/arrayLength/cdd123.wgsl.expected.msl
+++ b/test/builtins/gen/arrayLength/cdd123.wgsl.expected.msl
@@ -4,17 +4,19 @@
 struct tint_symbol_1 {
   /* 0x0000 */ uint4 buffer_size[1];
 };
+
 struct SB_RW {
   float arg_0[1];
 };
-struct tint_symbol {
-  float4 value [[position]];
-};
 
 void arrayLength_cdd123(const constant tint_symbol_1* const tint_symbol_3) {
   uint res = (((*(tint_symbol_3)).buffer_size[0u][0u] - 0u) / 4u);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(const constant tint_symbol_1* const tint_symbol_4) {
   arrayLength_cdd123(tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/arrayLength/cfca0a.wgsl.expected.msl b/test/builtins/gen/arrayLength/cfca0a.wgsl.expected.msl
index 279dd8c..5dd7ad6 100644
--- a/test/builtins/gen/arrayLength/cfca0a.wgsl.expected.msl
+++ b/test/builtins/gen/arrayLength/cfca0a.wgsl.expected.msl
@@ -4,17 +4,19 @@
 struct tint_symbol_1 {
   /* 0x0000 */ uint4 buffer_size[1];
 };
+
 struct SB_RO {
   uint arg_0[1];
 };
-struct tint_symbol {
-  float4 value [[position]];
-};
 
 void arrayLength_cfca0a(const constant tint_symbol_1* const tint_symbol_3) {
   uint res = (((*(tint_symbol_3)).buffer_size[0u][0u] - 0u) / 4u);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(const constant tint_symbol_1* const tint_symbol_4) {
   arrayLength_cfca0a(tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/arrayLength/eb510f.wgsl.expected.msl b/test/builtins/gen/arrayLength/eb510f.wgsl.expected.msl
index 3570449..c66c426 100644
--- a/test/builtins/gen/arrayLength/eb510f.wgsl.expected.msl
+++ b/test/builtins/gen/arrayLength/eb510f.wgsl.expected.msl
@@ -4,17 +4,19 @@
 struct tint_symbol_1 {
   /* 0x0000 */ uint4 buffer_size[1];
 };
+
 struct SB_RW {
   uint arg_0[1];
 };
-struct tint_symbol {
-  float4 value [[position]];
-};
 
 void arrayLength_eb510f(const constant tint_symbol_1* const tint_symbol_3) {
   uint res = (((*(tint_symbol_3)).buffer_size[0u][0u] - 0u) / 4u);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(const constant tint_symbol_1* const tint_symbol_4) {
   arrayLength_eb510f(tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/asin/064953.wgsl.expected.msl b/test/builtins/gen/asin/064953.wgsl.expected.msl
index da1729f..efee548 100644
--- a/test/builtins/gen/asin/064953.wgsl.expected.msl
+++ b/test/builtins/gen/asin/064953.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void asin_064953() {
   float4 res = asin(float4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   asin_064953();
   return float4();
diff --git a/test/builtins/gen/asin/7b6a44.wgsl.expected.msl b/test/builtins/gen/asin/7b6a44.wgsl.expected.msl
index dae258d..35238bb 100644
--- a/test/builtins/gen/asin/7b6a44.wgsl.expected.msl
+++ b/test/builtins/gen/asin/7b6a44.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void asin_7b6a44() {
   float2 res = asin(float2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   asin_7b6a44();
   return float4();
diff --git a/test/builtins/gen/asin/8cd9c9.wgsl.expected.msl b/test/builtins/gen/asin/8cd9c9.wgsl.expected.msl
index 5541c54..bd99520 100644
--- a/test/builtins/gen/asin/8cd9c9.wgsl.expected.msl
+++ b/test/builtins/gen/asin/8cd9c9.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void asin_8cd9c9() {
   float3 res = asin(float3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   asin_8cd9c9();
   return float4();
diff --git a/test/builtins/gen/asin/c0c272.wgsl.expected.msl b/test/builtins/gen/asin/c0c272.wgsl.expected.msl
index 41db384..4ada72f 100644
--- a/test/builtins/gen/asin/c0c272.wgsl.expected.msl
+++ b/test/builtins/gen/asin/c0c272.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void asin_c0c272() {
   float res = asin(1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   asin_c0c272();
   return float4();
diff --git a/test/builtins/gen/atan/02979a.wgsl.expected.msl b/test/builtins/gen/atan/02979a.wgsl.expected.msl
index 35ebc9f8..bfe58be 100644
--- a/test/builtins/gen/atan/02979a.wgsl.expected.msl
+++ b/test/builtins/gen/atan/02979a.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void atan_02979a() {
   float res = atan(1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   atan_02979a();
   return float4();
diff --git a/test/builtins/gen/atan/331e6d.wgsl.expected.msl b/test/builtins/gen/atan/331e6d.wgsl.expected.msl
index 8bedb23..3c7f449 100644
--- a/test/builtins/gen/atan/331e6d.wgsl.expected.msl
+++ b/test/builtins/gen/atan/331e6d.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void atan_331e6d() {
   float3 res = atan(float3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   atan_331e6d();
   return float4();
diff --git a/test/builtins/gen/atan/a8b696.wgsl.expected.msl b/test/builtins/gen/atan/a8b696.wgsl.expected.msl
index 141ad98..a82a8f9 100644
--- a/test/builtins/gen/atan/a8b696.wgsl.expected.msl
+++ b/test/builtins/gen/atan/a8b696.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void atan_a8b696() {
   float4 res = atan(float4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   atan_a8b696();
   return float4();
diff --git a/test/builtins/gen/atan/ad96e4.wgsl.expected.msl b/test/builtins/gen/atan/ad96e4.wgsl.expected.msl
index 2f9c4bf..f5a2151 100644
--- a/test/builtins/gen/atan/ad96e4.wgsl.expected.msl
+++ b/test/builtins/gen/atan/ad96e4.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void atan_ad96e4() {
   float2 res = atan(float2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   atan_ad96e4();
   return float4();
diff --git a/test/builtins/gen/atan2/57fb13.wgsl.expected.msl b/test/builtins/gen/atan2/57fb13.wgsl.expected.msl
index 828d520..f05e3c5 100644
--- a/test/builtins/gen/atan2/57fb13.wgsl.expected.msl
+++ b/test/builtins/gen/atan2/57fb13.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void atan2_57fb13() {
   float2 res = atan2(float2(), float2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   atan2_57fb13();
   return float4();
diff --git a/test/builtins/gen/atan2/96057c.wgsl.expected.msl b/test/builtins/gen/atan2/96057c.wgsl.expected.msl
index 8157ae8..659a622 100644
--- a/test/builtins/gen/atan2/96057c.wgsl.expected.msl
+++ b/test/builtins/gen/atan2/96057c.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void atan2_96057c() {
   float res = atan2(1.0f, 1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   atan2_96057c();
   return float4();
diff --git a/test/builtins/gen/atan2/a70d0d.wgsl.expected.msl b/test/builtins/gen/atan2/a70d0d.wgsl.expected.msl
index 2e20b03..3281d29 100644
--- a/test/builtins/gen/atan2/a70d0d.wgsl.expected.msl
+++ b/test/builtins/gen/atan2/a70d0d.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void atan2_a70d0d() {
   float3 res = atan2(float3(), float3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   atan2_a70d0d();
   return float4();
diff --git a/test/builtins/gen/atan2/ae713e.wgsl.expected.msl b/test/builtins/gen/atan2/ae713e.wgsl.expected.msl
index 05e4eae..58e28ab 100644
--- a/test/builtins/gen/atan2/ae713e.wgsl.expected.msl
+++ b/test/builtins/gen/atan2/ae713e.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void atan2_ae713e() {
   float4 res = atan2(float4(), float4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   atan2_ae713e();
   return float4();
diff --git a/test/builtins/gen/ceil/34064b.wgsl.expected.msl b/test/builtins/gen/ceil/34064b.wgsl.expected.msl
index b523ac6..a8886eb 100644
--- a/test/builtins/gen/ceil/34064b.wgsl.expected.msl
+++ b/test/builtins/gen/ceil/34064b.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void ceil_34064b() {
   float3 res = ceil(float3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   ceil_34064b();
   return float4();
diff --git a/test/builtins/gen/ceil/678655.wgsl.expected.msl b/test/builtins/gen/ceil/678655.wgsl.expected.msl
index 12da11c..6a52e99 100644
--- a/test/builtins/gen/ceil/678655.wgsl.expected.msl
+++ b/test/builtins/gen/ceil/678655.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void ceil_678655() {
   float res = ceil(1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   ceil_678655();
   return float4();
diff --git a/test/builtins/gen/ceil/96f597.wgsl.expected.msl b/test/builtins/gen/ceil/96f597.wgsl.expected.msl
index 3e28a93..ec01984 100644
--- a/test/builtins/gen/ceil/96f597.wgsl.expected.msl
+++ b/test/builtins/gen/ceil/96f597.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void ceil_96f597() {
   float2 res = ceil(float2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   ceil_96f597();
   return float4();
diff --git a/test/builtins/gen/ceil/b74c16.wgsl.expected.msl b/test/builtins/gen/ceil/b74c16.wgsl.expected.msl
index edcbb41..8aefc08 100644
--- a/test/builtins/gen/ceil/b74c16.wgsl.expected.msl
+++ b/test/builtins/gen/ceil/b74c16.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void ceil_b74c16() {
   float4 res = ceil(float4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   ceil_b74c16();
   return float4();
diff --git a/test/builtins/gen/clamp/0acf8f.wgsl.expected.msl b/test/builtins/gen/clamp/0acf8f.wgsl.expected.msl
index a0f7e2a..916d8fd 100644
--- a/test/builtins/gen/clamp/0acf8f.wgsl.expected.msl
+++ b/test/builtins/gen/clamp/0acf8f.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void clamp_0acf8f() {
   float2 res = clamp(float2(), float2(), float2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   clamp_0acf8f();
   return float4();
diff --git a/test/builtins/gen/clamp/1a32e3.wgsl.expected.msl b/test/builtins/gen/clamp/1a32e3.wgsl.expected.msl
index d1bc9c0..44f759a 100644
--- a/test/builtins/gen/clamp/1a32e3.wgsl.expected.msl
+++ b/test/builtins/gen/clamp/1a32e3.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void clamp_1a32e3() {
   int4 res = clamp(int4(), int4(), int4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   clamp_1a32e3();
   return float4();
diff --git a/test/builtins/gen/clamp/2bd567.wgsl.expected.msl b/test/builtins/gen/clamp/2bd567.wgsl.expected.msl
index fff5d22..dfcc293 100644
--- a/test/builtins/gen/clamp/2bd567.wgsl.expected.msl
+++ b/test/builtins/gen/clamp/2bd567.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void clamp_2bd567() {
   float res = clamp(1.0f, 1.0f, 1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   clamp_2bd567();
   return float4();
diff --git a/test/builtins/gen/clamp/2bde41.wgsl.expected.msl b/test/builtins/gen/clamp/2bde41.wgsl.expected.msl
index a020143..dac7c95 100644
--- a/test/builtins/gen/clamp/2bde41.wgsl.expected.msl
+++ b/test/builtins/gen/clamp/2bde41.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void clamp_2bde41() {
   float4 res = clamp(float4(), float4(), float4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   clamp_2bde41();
   return float4();
diff --git a/test/builtins/gen/clamp/548fc7.wgsl.expected.msl b/test/builtins/gen/clamp/548fc7.wgsl.expected.msl
index eb8e97a..0ca98d3 100644
--- a/test/builtins/gen/clamp/548fc7.wgsl.expected.msl
+++ b/test/builtins/gen/clamp/548fc7.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void clamp_548fc7() {
   uint3 res = clamp(uint3(), uint3(), uint3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   clamp_548fc7();
   return float4();
diff --git a/test/builtins/gen/clamp/5f0819.wgsl.expected.msl b/test/builtins/gen/clamp/5f0819.wgsl.expected.msl
index 32d3883..b2da28a 100644
--- a/test/builtins/gen/clamp/5f0819.wgsl.expected.msl
+++ b/test/builtins/gen/clamp/5f0819.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void clamp_5f0819() {
   int3 res = clamp(int3(), int3(), int3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   clamp_5f0819();
   return float4();
diff --git a/test/builtins/gen/clamp/6c1749.wgsl.expected.msl b/test/builtins/gen/clamp/6c1749.wgsl.expected.msl
index 79d1efd..39c36af 100644
--- a/test/builtins/gen/clamp/6c1749.wgsl.expected.msl
+++ b/test/builtins/gen/clamp/6c1749.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void clamp_6c1749() {
   int2 res = clamp(int2(), int2(), int2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   clamp_6c1749();
   return float4();
diff --git a/test/builtins/gen/clamp/7706d7.wgsl.expected.msl b/test/builtins/gen/clamp/7706d7.wgsl.expected.msl
index 9b13206..840b4ad 100644
--- a/test/builtins/gen/clamp/7706d7.wgsl.expected.msl
+++ b/test/builtins/gen/clamp/7706d7.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void clamp_7706d7() {
   uint2 res = clamp(uint2(), uint2(), uint2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   clamp_7706d7();
   return float4();
diff --git a/test/builtins/gen/clamp/867397.wgsl.expected.msl b/test/builtins/gen/clamp/867397.wgsl.expected.msl
index fc1a990..66e8646 100644
--- a/test/builtins/gen/clamp/867397.wgsl.expected.msl
+++ b/test/builtins/gen/clamp/867397.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void clamp_867397() {
   float3 res = clamp(float3(), float3(), float3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   clamp_867397();
   return float4();
diff --git a/test/builtins/gen/clamp/a2de25.wgsl.expected.msl b/test/builtins/gen/clamp/a2de25.wgsl.expected.msl
index faf58bf..8e4fdfb 100644
--- a/test/builtins/gen/clamp/a2de25.wgsl.expected.msl
+++ b/test/builtins/gen/clamp/a2de25.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void clamp_a2de25() {
   uint res = clamp(1u, 1u, 1u);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   clamp_a2de25();
   return float4();
diff --git a/test/builtins/gen/clamp/b07c65.wgsl.expected.msl b/test/builtins/gen/clamp/b07c65.wgsl.expected.msl
index c863403..cfe6f26 100644
--- a/test/builtins/gen/clamp/b07c65.wgsl.expected.msl
+++ b/test/builtins/gen/clamp/b07c65.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void clamp_b07c65() {
   int res = clamp(1, 1, 1);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   clamp_b07c65();
   return float4();
diff --git a/test/builtins/gen/clamp/bd43ce.wgsl.expected.msl b/test/builtins/gen/clamp/bd43ce.wgsl.expected.msl
index 73773c7..45be006 100644
--- a/test/builtins/gen/clamp/bd43ce.wgsl.expected.msl
+++ b/test/builtins/gen/clamp/bd43ce.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void clamp_bd43ce() {
   uint4 res = clamp(uint4(), uint4(), uint4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   clamp_bd43ce();
   return float4();
diff --git a/test/builtins/gen/cos/16dc15.wgsl.expected.msl b/test/builtins/gen/cos/16dc15.wgsl.expected.msl
index e78ce75..757514e 100644
--- a/test/builtins/gen/cos/16dc15.wgsl.expected.msl
+++ b/test/builtins/gen/cos/16dc15.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void cos_16dc15() {
   float3 res = cos(float3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   cos_16dc15();
   return float4();
diff --git a/test/builtins/gen/cos/29d66d.wgsl.expected.msl b/test/builtins/gen/cos/29d66d.wgsl.expected.msl
index c760b40..c77bb9e 100644
--- a/test/builtins/gen/cos/29d66d.wgsl.expected.msl
+++ b/test/builtins/gen/cos/29d66d.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void cos_29d66d() {
   float4 res = cos(float4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   cos_29d66d();
   return float4();
diff --git a/test/builtins/gen/cos/c3b486.wgsl.expected.msl b/test/builtins/gen/cos/c3b486.wgsl.expected.msl
index 9b68bf5..9118d29 100644
--- a/test/builtins/gen/cos/c3b486.wgsl.expected.msl
+++ b/test/builtins/gen/cos/c3b486.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void cos_c3b486() {
   float2 res = cos(float2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   cos_c3b486();
   return float4();
diff --git a/test/builtins/gen/cos/c5c28e.wgsl.expected.msl b/test/builtins/gen/cos/c5c28e.wgsl.expected.msl
index 85e85df..fb0fdd7 100644
--- a/test/builtins/gen/cos/c5c28e.wgsl.expected.msl
+++ b/test/builtins/gen/cos/c5c28e.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void cos_c5c28e() {
   float res = cos(1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   cos_c5c28e();
   return float4();
diff --git a/test/builtins/gen/cosh/377652.wgsl.expected.msl b/test/builtins/gen/cosh/377652.wgsl.expected.msl
index cd51d35..0edfd48 100644
--- a/test/builtins/gen/cosh/377652.wgsl.expected.msl
+++ b/test/builtins/gen/cosh/377652.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void cosh_377652() {
   float3 res = cosh(float3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   cosh_377652();
   return float4();
diff --git a/test/builtins/gen/cosh/c13756.wgsl.expected.msl b/test/builtins/gen/cosh/c13756.wgsl.expected.msl
index f4cb6c9..84f27d0 100644
--- a/test/builtins/gen/cosh/c13756.wgsl.expected.msl
+++ b/test/builtins/gen/cosh/c13756.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void cosh_c13756() {
   float2 res = cosh(float2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   cosh_c13756();
   return float4();
diff --git a/test/builtins/gen/cosh/da92dd.wgsl.expected.msl b/test/builtins/gen/cosh/da92dd.wgsl.expected.msl
index a59cebb..21bc829 100644
--- a/test/builtins/gen/cosh/da92dd.wgsl.expected.msl
+++ b/test/builtins/gen/cosh/da92dd.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void cosh_da92dd() {
   float res = cosh(1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   cosh_da92dd();
   return float4();
diff --git a/test/builtins/gen/cosh/e0c1de.wgsl.expected.msl b/test/builtins/gen/cosh/e0c1de.wgsl.expected.msl
index d464715..1bf2ee4 100644
--- a/test/builtins/gen/cosh/e0c1de.wgsl.expected.msl
+++ b/test/builtins/gen/cosh/e0c1de.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void cosh_e0c1de() {
   float4 res = cosh(float4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   cosh_e0c1de();
   return float4();
diff --git a/test/builtins/gen/countOneBits/0d0e46.wgsl.expected.msl b/test/builtins/gen/countOneBits/0d0e46.wgsl.expected.msl
index d4a4bbe..448eec5 100644
--- a/test/builtins/gen/countOneBits/0d0e46.wgsl.expected.msl
+++ b/test/builtins/gen/countOneBits/0d0e46.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void countOneBits_0d0e46() {
   uint4 res = popcount(uint4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   countOneBits_0d0e46();
   return float4();
diff --git a/test/builtins/gen/countOneBits/0f7980.wgsl.expected.msl b/test/builtins/gen/countOneBits/0f7980.wgsl.expected.msl
index baa7886..196fe6a 100644
--- a/test/builtins/gen/countOneBits/0f7980.wgsl.expected.msl
+++ b/test/builtins/gen/countOneBits/0f7980.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void countOneBits_0f7980() {
   int4 res = popcount(int4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   countOneBits_0f7980();
   return float4();
diff --git a/test/builtins/gen/countOneBits/65d2ae.wgsl.expected.msl b/test/builtins/gen/countOneBits/65d2ae.wgsl.expected.msl
index b8fec94..a8ac3e8 100644
--- a/test/builtins/gen/countOneBits/65d2ae.wgsl.expected.msl
+++ b/test/builtins/gen/countOneBits/65d2ae.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void countOneBits_65d2ae() {
   int3 res = popcount(int3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   countOneBits_65d2ae();
   return float4();
diff --git a/test/builtins/gen/countOneBits/690cfc.wgsl.expected.msl b/test/builtins/gen/countOneBits/690cfc.wgsl.expected.msl
index abc54b7..0027440 100644
--- a/test/builtins/gen/countOneBits/690cfc.wgsl.expected.msl
+++ b/test/builtins/gen/countOneBits/690cfc.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void countOneBits_690cfc() {
   uint3 res = popcount(uint3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   countOneBits_690cfc();
   return float4();
diff --git a/test/builtins/gen/countOneBits/94fd81.wgsl.expected.msl b/test/builtins/gen/countOneBits/94fd81.wgsl.expected.msl
index 3659c4a..e1f6248 100644
--- a/test/builtins/gen/countOneBits/94fd81.wgsl.expected.msl
+++ b/test/builtins/gen/countOneBits/94fd81.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void countOneBits_94fd81() {
   uint2 res = popcount(uint2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   countOneBits_94fd81();
   return float4();
diff --git a/test/builtins/gen/countOneBits/ae44f9.wgsl.expected.msl b/test/builtins/gen/countOneBits/ae44f9.wgsl.expected.msl
index 3ad8bd0..5a33d66 100644
--- a/test/builtins/gen/countOneBits/ae44f9.wgsl.expected.msl
+++ b/test/builtins/gen/countOneBits/ae44f9.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void countOneBits_ae44f9() {
   uint res = popcount(1u);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   countOneBits_ae44f9();
   return float4();
diff --git a/test/builtins/gen/countOneBits/af90e2.wgsl.expected.msl b/test/builtins/gen/countOneBits/af90e2.wgsl.expected.msl
index 2d03309..f68cf94 100644
--- a/test/builtins/gen/countOneBits/af90e2.wgsl.expected.msl
+++ b/test/builtins/gen/countOneBits/af90e2.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void countOneBits_af90e2() {
   int2 res = popcount(int2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   countOneBits_af90e2();
   return float4();
diff --git a/test/builtins/gen/countOneBits/fd88b2.wgsl.expected.msl b/test/builtins/gen/countOneBits/fd88b2.wgsl.expected.msl
index 765afb7..998da7a 100644
--- a/test/builtins/gen/countOneBits/fd88b2.wgsl.expected.msl
+++ b/test/builtins/gen/countOneBits/fd88b2.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void countOneBits_fd88b2() {
   int res = popcount(1);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   countOneBits_fd88b2();
   return float4();
diff --git a/test/builtins/gen/cross/041cb0.wgsl.expected.msl b/test/builtins/gen/cross/041cb0.wgsl.expected.msl
index 67ab3df..86e2546 100644
--- a/test/builtins/gen/cross/041cb0.wgsl.expected.msl
+++ b/test/builtins/gen/cross/041cb0.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void cross_041cb0() {
   float3 res = cross(float3(), float3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   cross_041cb0();
   return float4();
diff --git a/test/builtins/gen/degrees/0d170c.wgsl.expected.msl b/test/builtins/gen/degrees/0d170c.wgsl.expected.msl
index 4ca1936..2773179 100644
--- a/test/builtins/gen/degrees/0d170c.wgsl.expected.msl
+++ b/test/builtins/gen/degrees/0d170c.wgsl.expected.msl
@@ -6,14 +6,14 @@
   return param_0 * 57.295779513082322865;
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void degrees_0d170c() {
   float4 res = tint_degrees(float4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   degrees_0d170c();
   return float4();
diff --git a/test/builtins/gen/degrees/1ad5df.wgsl.expected.msl b/test/builtins/gen/degrees/1ad5df.wgsl.expected.msl
index 6b7e1c6..5305c0f 100644
--- a/test/builtins/gen/degrees/1ad5df.wgsl.expected.msl
+++ b/test/builtins/gen/degrees/1ad5df.wgsl.expected.msl
@@ -6,14 +6,14 @@
   return param_0 * 57.295779513082322865;
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void degrees_1ad5df() {
   float2 res = tint_degrees(float2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   degrees_1ad5df();
   return float4();
diff --git a/test/builtins/gen/degrees/2af623.wgsl.expected.msl b/test/builtins/gen/degrees/2af623.wgsl.expected.msl
index b7eafd9..46d0565 100644
--- a/test/builtins/gen/degrees/2af623.wgsl.expected.msl
+++ b/test/builtins/gen/degrees/2af623.wgsl.expected.msl
@@ -6,14 +6,14 @@
   return param_0 * 57.295779513082322865;
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void degrees_2af623() {
   float3 res = tint_degrees(float3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   degrees_2af623();
   return float4();
diff --git a/test/builtins/gen/degrees/51f705.wgsl.expected.msl b/test/builtins/gen/degrees/51f705.wgsl.expected.msl
index 42fdae8..2b6395d 100644
--- a/test/builtins/gen/degrees/51f705.wgsl.expected.msl
+++ b/test/builtins/gen/degrees/51f705.wgsl.expected.msl
@@ -6,14 +6,14 @@
   return param_0 * 57.295779513082322865;
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void degrees_51f705() {
   float res = tint_degrees(1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   degrees_51f705();
   return float4();
diff --git a/test/builtins/gen/determinant/2b62ba.wgsl.expected.msl b/test/builtins/gen/determinant/2b62ba.wgsl.expected.msl
index 291d916..6953c6b 100644
--- a/test/builtins/gen/determinant/2b62ba.wgsl.expected.msl
+++ b/test/builtins/gen/determinant/2b62ba.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void determinant_2b62ba() {
   float res = determinant(float3x3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   determinant_2b62ba();
   return float4();
diff --git a/test/builtins/gen/determinant/a0a87c.wgsl.expected.msl b/test/builtins/gen/determinant/a0a87c.wgsl.expected.msl
index e3ef160..4482074 100644
--- a/test/builtins/gen/determinant/a0a87c.wgsl.expected.msl
+++ b/test/builtins/gen/determinant/a0a87c.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void determinant_a0a87c() {
   float res = determinant(float4x4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   determinant_a0a87c();
   return float4();
diff --git a/test/builtins/gen/determinant/e19305.wgsl.expected.msl b/test/builtins/gen/determinant/e19305.wgsl.expected.msl
index 48c7ad0..ce236ae 100644
--- a/test/builtins/gen/determinant/e19305.wgsl.expected.msl
+++ b/test/builtins/gen/determinant/e19305.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void determinant_e19305() {
   float res = determinant(float2x2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   determinant_e19305();
   return float4();
diff --git a/test/builtins/gen/distance/0657d4.wgsl.expected.msl b/test/builtins/gen/distance/0657d4.wgsl.expected.msl
index 1880b73..834ac13 100644
--- a/test/builtins/gen/distance/0657d4.wgsl.expected.msl
+++ b/test/builtins/gen/distance/0657d4.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void distance_0657d4() {
   float res = distance(float3(), float3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   distance_0657d4();
   return float4();
diff --git a/test/builtins/gen/distance/9646ea.wgsl.expected.msl b/test/builtins/gen/distance/9646ea.wgsl.expected.msl
index 649f037..6875684 100644
--- a/test/builtins/gen/distance/9646ea.wgsl.expected.msl
+++ b/test/builtins/gen/distance/9646ea.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void distance_9646ea() {
   float res = distance(float4(), float4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   distance_9646ea();
   return float4();
diff --git a/test/builtins/gen/distance/aa4055.wgsl.expected.msl b/test/builtins/gen/distance/aa4055.wgsl.expected.msl
index 6a449ac..b2d798b 100644
--- a/test/builtins/gen/distance/aa4055.wgsl.expected.msl
+++ b/test/builtins/gen/distance/aa4055.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void distance_aa4055() {
   float res = distance(float2(), float2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   distance_aa4055();
   return float4();
diff --git a/test/builtins/gen/distance/cfed73.wgsl.expected.msl b/test/builtins/gen/distance/cfed73.wgsl.expected.msl
index 2649170..698ebb1 100644
--- a/test/builtins/gen/distance/cfed73.wgsl.expected.msl
+++ b/test/builtins/gen/distance/cfed73.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void distance_cfed73() {
   float res = fabs(1.0f - 1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   distance_cfed73();
   return float4();
diff --git a/test/builtins/gen/dot/0c577b.wgsl.expected.msl b/test/builtins/gen/dot/0c577b.wgsl.expected.msl
index e1f5adb..19de798 100644
--- a/test/builtins/gen/dot/0c577b.wgsl.expected.msl
+++ b/test/builtins/gen/dot/0c577b.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void dot_0c577b() {
   float res = dot(float4(), float4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   dot_0c577b();
   return float4();
diff --git a/test/builtins/gen/dot/7548a0.wgsl.expected.msl b/test/builtins/gen/dot/7548a0.wgsl.expected.msl
index fb3daab..d0d876d 100644
--- a/test/builtins/gen/dot/7548a0.wgsl.expected.msl
+++ b/test/builtins/gen/dot/7548a0.wgsl.expected.msl
@@ -6,14 +6,14 @@
 T tint_dot3(vec<T,3> a, vec<T,3> b) {
   return a[0]*b[0] + a[1]*b[1] + a[2]*b[2];
 }
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void dot_7548a0() {
   uint res = tint_dot3(uint3(), uint3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   dot_7548a0();
   return float4();
diff --git a/test/builtins/gen/dot/883f0e.wgsl.expected.msl b/test/builtins/gen/dot/883f0e.wgsl.expected.msl
index 1dfda90..00dbb28 100644
--- a/test/builtins/gen/dot/883f0e.wgsl.expected.msl
+++ b/test/builtins/gen/dot/883f0e.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void dot_883f0e() {
   float res = dot(float2(), float2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   dot_883f0e();
   return float4();
diff --git a/test/builtins/gen/dot/97c7ee.wgsl.expected.msl b/test/builtins/gen/dot/97c7ee.wgsl.expected.msl
index d288445..ed799a1 100644
--- a/test/builtins/gen/dot/97c7ee.wgsl.expected.msl
+++ b/test/builtins/gen/dot/97c7ee.wgsl.expected.msl
@@ -6,14 +6,14 @@
 T tint_dot2(vec<T,2> a, vec<T,2> b) {
   return a[0]*b[0] + a[1]*b[1];
 }
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void dot_97c7ee() {
   uint res = tint_dot2(uint2(), uint2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   dot_97c7ee();
   return float4();
diff --git a/test/builtins/gen/dot/ba4246.wgsl.expected.msl b/test/builtins/gen/dot/ba4246.wgsl.expected.msl
index 517643e..9124e94 100644
--- a/test/builtins/gen/dot/ba4246.wgsl.expected.msl
+++ b/test/builtins/gen/dot/ba4246.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void dot_ba4246() {
   float res = dot(float3(), float3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   dot_ba4246();
   return float4();
diff --git a/test/builtins/gen/dot/e994c7.wgsl.expected.msl b/test/builtins/gen/dot/e994c7.wgsl.expected.msl
index 70fa0e3..e2d1a32 100644
--- a/test/builtins/gen/dot/e994c7.wgsl.expected.msl
+++ b/test/builtins/gen/dot/e994c7.wgsl.expected.msl
@@ -6,14 +6,14 @@
 T tint_dot4(vec<T,4> a, vec<T,4> b) {
   return a[0]*b[0] + a[1]*b[1] + a[2]*b[2] + a[3]*b[3];
 }
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void dot_e994c7() {
   uint res = tint_dot4(uint4(), uint4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   dot_e994c7();
   return float4();
diff --git a/test/builtins/gen/dot/ef6b1d.wgsl.expected.msl b/test/builtins/gen/dot/ef6b1d.wgsl.expected.msl
index f7a85b8..4760031 100644
--- a/test/builtins/gen/dot/ef6b1d.wgsl.expected.msl
+++ b/test/builtins/gen/dot/ef6b1d.wgsl.expected.msl
@@ -6,14 +6,14 @@
 T tint_dot4(vec<T,4> a, vec<T,4> b) {
   return a[0]*b[0] + a[1]*b[1] + a[2]*b[2] + a[3]*b[3];
 }
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void dot_ef6b1d() {
   int res = tint_dot4(int4(), int4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   dot_ef6b1d();
   return float4();
diff --git a/test/builtins/gen/dot/f1312c.wgsl.expected.msl b/test/builtins/gen/dot/f1312c.wgsl.expected.msl
index aab9ef1..ecf8b2d 100644
--- a/test/builtins/gen/dot/f1312c.wgsl.expected.msl
+++ b/test/builtins/gen/dot/f1312c.wgsl.expected.msl
@@ -6,14 +6,14 @@
 T tint_dot3(vec<T,3> a, vec<T,3> b) {
   return a[0]*b[0] + a[1]*b[1] + a[2]*b[2];
 }
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void dot_f1312c() {
   int res = tint_dot3(int3(), int3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   dot_f1312c();
   return float4();
diff --git a/test/builtins/gen/dot/fc5f7c.wgsl.expected.msl b/test/builtins/gen/dot/fc5f7c.wgsl.expected.msl
index 138e822..199ff06 100644
--- a/test/builtins/gen/dot/fc5f7c.wgsl.expected.msl
+++ b/test/builtins/gen/dot/fc5f7c.wgsl.expected.msl
@@ -6,14 +6,14 @@
 T tint_dot2(vec<T,2> a, vec<T,2> b) {
   return a[0]*b[0] + a[1]*b[1];
 }
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void dot_fc5f7c() {
   int res = tint_dot2(int2(), int2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   dot_fc5f7c();
   return float4();
diff --git a/test/builtins/gen/exp/0f70eb.wgsl.expected.msl b/test/builtins/gen/exp/0f70eb.wgsl.expected.msl
index 83ba5fa..e9b3fdf 100644
--- a/test/builtins/gen/exp/0f70eb.wgsl.expected.msl
+++ b/test/builtins/gen/exp/0f70eb.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void exp_0f70eb() {
   float4 res = exp(float4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   exp_0f70eb();
   return float4();
diff --git a/test/builtins/gen/exp/1951e7.wgsl.expected.msl b/test/builtins/gen/exp/1951e7.wgsl.expected.msl
index 0f03e9f..b350d68 100644
--- a/test/builtins/gen/exp/1951e7.wgsl.expected.msl
+++ b/test/builtins/gen/exp/1951e7.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void exp_1951e7() {
   float2 res = exp(float2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   exp_1951e7();
   return float4();
diff --git a/test/builtins/gen/exp/771fd2.wgsl.expected.msl b/test/builtins/gen/exp/771fd2.wgsl.expected.msl
index 8464078..86d9308 100644
--- a/test/builtins/gen/exp/771fd2.wgsl.expected.msl
+++ b/test/builtins/gen/exp/771fd2.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void exp_771fd2() {
   float res = exp(1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   exp_771fd2();
   return float4();
diff --git a/test/builtins/gen/exp/d98450.wgsl.expected.msl b/test/builtins/gen/exp/d98450.wgsl.expected.msl
index 32c830b..7af2563 100644
--- a/test/builtins/gen/exp/d98450.wgsl.expected.msl
+++ b/test/builtins/gen/exp/d98450.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void exp_d98450() {
   float3 res = exp(float3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   exp_d98450();
   return float4();
diff --git a/test/builtins/gen/exp2/1f8680.wgsl.expected.msl b/test/builtins/gen/exp2/1f8680.wgsl.expected.msl
index cde78da..4d07e6b 100644
--- a/test/builtins/gen/exp2/1f8680.wgsl.expected.msl
+++ b/test/builtins/gen/exp2/1f8680.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void exp2_1f8680() {
   float3 res = exp2(float3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   exp2_1f8680();
   return float4();
diff --git a/test/builtins/gen/exp2/a9d0a7.wgsl.expected.msl b/test/builtins/gen/exp2/a9d0a7.wgsl.expected.msl
index 6202c97..98447ae 100644
--- a/test/builtins/gen/exp2/a9d0a7.wgsl.expected.msl
+++ b/test/builtins/gen/exp2/a9d0a7.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void exp2_a9d0a7() {
   float4 res = exp2(float4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   exp2_a9d0a7();
   return float4();
diff --git a/test/builtins/gen/exp2/d6777c.wgsl.expected.msl b/test/builtins/gen/exp2/d6777c.wgsl.expected.msl
index 62f0d93..a94325e 100644
--- a/test/builtins/gen/exp2/d6777c.wgsl.expected.msl
+++ b/test/builtins/gen/exp2/d6777c.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void exp2_d6777c() {
   float2 res = exp2(float2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   exp2_d6777c();
   return float4();
diff --git a/test/builtins/gen/exp2/dea523.wgsl.expected.msl b/test/builtins/gen/exp2/dea523.wgsl.expected.msl
index cb5f8b7..d331243 100644
--- a/test/builtins/gen/exp2/dea523.wgsl.expected.msl
+++ b/test/builtins/gen/exp2/dea523.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void exp2_dea523() {
   float res = exp2(1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   exp2_dea523();
   return float4();
diff --git a/test/builtins/gen/faceForward/5afbd5.wgsl.expected.msl b/test/builtins/gen/faceForward/5afbd5.wgsl.expected.msl
index 00496ff..c539bc7 100644
--- a/test/builtins/gen/faceForward/5afbd5.wgsl.expected.msl
+++ b/test/builtins/gen/faceForward/5afbd5.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void faceForward_5afbd5() {
   float3 res = faceforward(float3(), float3(), float3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   faceForward_5afbd5();
   return float4();
diff --git a/test/builtins/gen/faceForward/b316e5.wgsl.expected.msl b/test/builtins/gen/faceForward/b316e5.wgsl.expected.msl
index fc6ee22..2e32470 100644
--- a/test/builtins/gen/faceForward/b316e5.wgsl.expected.msl
+++ b/test/builtins/gen/faceForward/b316e5.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void faceForward_b316e5() {
   float4 res = faceforward(float4(), float4(), float4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   faceForward_b316e5();
   return float4();
diff --git a/test/builtins/gen/faceForward/e6908b.wgsl.expected.msl b/test/builtins/gen/faceForward/e6908b.wgsl.expected.msl
index d5a6782..a335ef7 100644
--- a/test/builtins/gen/faceForward/e6908b.wgsl.expected.msl
+++ b/test/builtins/gen/faceForward/e6908b.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void faceForward_e6908b() {
   float2 res = faceforward(float2(), float2(), float2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   faceForward_e6908b();
   return float4();
diff --git a/test/builtins/gen/floor/3bccc4.wgsl.expected.msl b/test/builtins/gen/floor/3bccc4.wgsl.expected.msl
index e75d603..74bffe2 100644
--- a/test/builtins/gen/floor/3bccc4.wgsl.expected.msl
+++ b/test/builtins/gen/floor/3bccc4.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void floor_3bccc4() {
   float4 res = floor(float4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   floor_3bccc4();
   return float4();
diff --git a/test/builtins/gen/floor/5fc9ac.wgsl.expected.msl b/test/builtins/gen/floor/5fc9ac.wgsl.expected.msl
index 8cdbf02..6f7234b 100644
--- a/test/builtins/gen/floor/5fc9ac.wgsl.expected.msl
+++ b/test/builtins/gen/floor/5fc9ac.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void floor_5fc9ac() {
   float2 res = floor(float2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   floor_5fc9ac();
   return float4();
diff --git a/test/builtins/gen/floor/60d7ea.wgsl.expected.msl b/test/builtins/gen/floor/60d7ea.wgsl.expected.msl
index c03feae..fbca5d9 100644
--- a/test/builtins/gen/floor/60d7ea.wgsl.expected.msl
+++ b/test/builtins/gen/floor/60d7ea.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void floor_60d7ea() {
   float3 res = floor(float3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   floor_60d7ea();
   return float4();
diff --git a/test/builtins/gen/floor/66f154.wgsl.expected.msl b/test/builtins/gen/floor/66f154.wgsl.expected.msl
index 943538f..1988089 100644
--- a/test/builtins/gen/floor/66f154.wgsl.expected.msl
+++ b/test/builtins/gen/floor/66f154.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void floor_66f154() {
   float res = floor(1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   floor_66f154();
   return float4();
diff --git a/test/builtins/gen/fma/26a7a9.wgsl.expected.msl b/test/builtins/gen/fma/26a7a9.wgsl.expected.msl
index 6d9c885..b87b6fe 100644
--- a/test/builtins/gen/fma/26a7a9.wgsl.expected.msl
+++ b/test/builtins/gen/fma/26a7a9.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void fma_26a7a9() {
   float2 res = fma(float2(), float2(), float2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   fma_26a7a9();
   return float4();
diff --git a/test/builtins/gen/fma/6a3283.wgsl.expected.msl b/test/builtins/gen/fma/6a3283.wgsl.expected.msl
index 070e615..a75b54f 100644
--- a/test/builtins/gen/fma/6a3283.wgsl.expected.msl
+++ b/test/builtins/gen/fma/6a3283.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void fma_6a3283() {
   float4 res = fma(float4(), float4(), float4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   fma_6a3283();
   return float4();
diff --git a/test/builtins/gen/fma/c10ba3.wgsl.expected.msl b/test/builtins/gen/fma/c10ba3.wgsl.expected.msl
index 4a296c6..886ff73 100644
--- a/test/builtins/gen/fma/c10ba3.wgsl.expected.msl
+++ b/test/builtins/gen/fma/c10ba3.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void fma_c10ba3() {
   float res = fma(1.0f, 1.0f, 1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   fma_c10ba3();
   return float4();
diff --git a/test/builtins/gen/fma/e17c5c.wgsl.expected.msl b/test/builtins/gen/fma/e17c5c.wgsl.expected.msl
index 61d7cd4..8c680e1 100644
--- a/test/builtins/gen/fma/e17c5c.wgsl.expected.msl
+++ b/test/builtins/gen/fma/e17c5c.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void fma_e17c5c() {
   float3 res = fma(float3(), float3(), float3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   fma_e17c5c();
   return float4();
diff --git a/test/builtins/gen/fract/8bc1e9.wgsl.expected.msl b/test/builtins/gen/fract/8bc1e9.wgsl.expected.msl
index c82b9ed..0d01c21 100644
--- a/test/builtins/gen/fract/8bc1e9.wgsl.expected.msl
+++ b/test/builtins/gen/fract/8bc1e9.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void fract_8bc1e9() {
   float4 res = fract(float4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   fract_8bc1e9();
   return float4();
diff --git a/test/builtins/gen/fract/943cb1.wgsl.expected.msl b/test/builtins/gen/fract/943cb1.wgsl.expected.msl
index ec6e76a..f288f79 100644
--- a/test/builtins/gen/fract/943cb1.wgsl.expected.msl
+++ b/test/builtins/gen/fract/943cb1.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void fract_943cb1() {
   float2 res = fract(float2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   fract_943cb1();
   return float4();
diff --git a/test/builtins/gen/fract/a49758.wgsl.expected.msl b/test/builtins/gen/fract/a49758.wgsl.expected.msl
index a57d717..0d14e6a 100644
--- a/test/builtins/gen/fract/a49758.wgsl.expected.msl
+++ b/test/builtins/gen/fract/a49758.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void fract_a49758() {
   float3 res = fract(float3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   fract_a49758();
   return float4();
diff --git a/test/builtins/gen/fract/fa5c71.wgsl.expected.msl b/test/builtins/gen/fract/fa5c71.wgsl.expected.msl
index 4997b0a..0660148 100644
--- a/test/builtins/gen/fract/fa5c71.wgsl.expected.msl
+++ b/test/builtins/gen/fract/fa5c71.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void fract_fa5c71() {
   float res = fract(1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   fract_fa5c71();
   return float4();
diff --git a/test/builtins/gen/frexp/368997.wgsl.expected.msl b/test/builtins/gen/frexp/368997.wgsl.expected.msl
index db90208..852c7f3 100644
--- a/test/builtins/gen/frexp/368997.wgsl.expected.msl
+++ b/test/builtins/gen/frexp/368997.wgsl.expected.msl
@@ -12,14 +12,14 @@
   return {sig, exp};
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void frexp_368997() {
   frexp_result_vec3 res = tint_frexp(float3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   frexp_368997();
   return float4();
diff --git a/test/builtins/gen/frexp/3c4f48.wgsl.expected.msl b/test/builtins/gen/frexp/3c4f48.wgsl.expected.msl
index 0879df5..11314ca 100644
--- a/test/builtins/gen/frexp/3c4f48.wgsl.expected.msl
+++ b/test/builtins/gen/frexp/3c4f48.wgsl.expected.msl
@@ -12,14 +12,14 @@
   return {sig, exp};
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void frexp_3c4f48() {
   frexp_result_vec4 res = tint_frexp(float4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   frexp_3c4f48();
   return float4();
diff --git a/test/builtins/gen/frexp/4bdfc7.wgsl.expected.msl b/test/builtins/gen/frexp/4bdfc7.wgsl.expected.msl
index bfdbe7f..f207cc6 100644
--- a/test/builtins/gen/frexp/4bdfc7.wgsl.expected.msl
+++ b/test/builtins/gen/frexp/4bdfc7.wgsl.expected.msl
@@ -12,14 +12,14 @@
   return {sig, exp};
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void frexp_4bdfc7() {
   frexp_result_vec2 res = tint_frexp(float2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   frexp_4bdfc7();
   return float4();
diff --git a/test/builtins/gen/frexp/eabd40.wgsl.expected.msl b/test/builtins/gen/frexp/eabd40.wgsl.expected.msl
index 96428fb..2b5431a 100644
--- a/test/builtins/gen/frexp/eabd40.wgsl.expected.msl
+++ b/test/builtins/gen/frexp/eabd40.wgsl.expected.msl
@@ -12,14 +12,14 @@
   return {sig, exp};
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void frexp_eabd40() {
   frexp_result res = tint_frexp(1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   frexp_eabd40();
   return float4();
diff --git a/test/builtins/gen/inverseSqrt/84407e.wgsl.expected.msl b/test/builtins/gen/inverseSqrt/84407e.wgsl.expected.msl
index a164dc9..a24f6b2 100644
--- a/test/builtins/gen/inverseSqrt/84407e.wgsl.expected.msl
+++ b/test/builtins/gen/inverseSqrt/84407e.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void inverseSqrt_84407e() {
   float res = rsqrt(1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   inverseSqrt_84407e();
   return float4();
diff --git a/test/builtins/gen/inverseSqrt/8f2bd2.wgsl.expected.msl b/test/builtins/gen/inverseSqrt/8f2bd2.wgsl.expected.msl
index c214ab5..1bbeb3a 100644
--- a/test/builtins/gen/inverseSqrt/8f2bd2.wgsl.expected.msl
+++ b/test/builtins/gen/inverseSqrt/8f2bd2.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void inverseSqrt_8f2bd2() {
   float2 res = rsqrt(float2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   inverseSqrt_8f2bd2();
   return float4();
diff --git a/test/builtins/gen/inverseSqrt/b197b1.wgsl.expected.msl b/test/builtins/gen/inverseSqrt/b197b1.wgsl.expected.msl
index 2c10c65..5d49c09 100644
--- a/test/builtins/gen/inverseSqrt/b197b1.wgsl.expected.msl
+++ b/test/builtins/gen/inverseSqrt/b197b1.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void inverseSqrt_b197b1() {
   float3 res = rsqrt(float3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   inverseSqrt_b197b1();
   return float4();
diff --git a/test/builtins/gen/inverseSqrt/c22347.wgsl.expected.msl b/test/builtins/gen/inverseSqrt/c22347.wgsl.expected.msl
index e2ce89e..3402152 100644
--- a/test/builtins/gen/inverseSqrt/c22347.wgsl.expected.msl
+++ b/test/builtins/gen/inverseSqrt/c22347.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void inverseSqrt_c22347() {
   float4 res = rsqrt(float4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   inverseSqrt_c22347();
   return float4();
diff --git a/test/builtins/gen/isFinite/34d32b.wgsl.expected.msl b/test/builtins/gen/isFinite/34d32b.wgsl.expected.msl
index d482cc2..d0ef43d 100644
--- a/test/builtins/gen/isFinite/34d32b.wgsl.expected.msl
+++ b/test/builtins/gen/isFinite/34d32b.wgsl.expected.msl
@@ -5,14 +5,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void isFinite_34d32b() {
   bool2 res = isfinite(float2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   isFinite_34d32b();
   return float4();
diff --git a/test/builtins/gen/isFinite/426f9f.wgsl.expected.msl b/test/builtins/gen/isFinite/426f9f.wgsl.expected.msl
index eff348c..90997f8 100644
--- a/test/builtins/gen/isFinite/426f9f.wgsl.expected.msl
+++ b/test/builtins/gen/isFinite/426f9f.wgsl.expected.msl
@@ -5,14 +5,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void isFinite_426f9f() {
   bool res = isfinite(1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   isFinite_426f9f();
   return float4();
diff --git a/test/builtins/gen/isFinite/8a23ad.wgsl.expected.msl b/test/builtins/gen/isFinite/8a23ad.wgsl.expected.msl
index e95e8b4..8a45c71 100644
--- a/test/builtins/gen/isFinite/8a23ad.wgsl.expected.msl
+++ b/test/builtins/gen/isFinite/8a23ad.wgsl.expected.msl
@@ -5,14 +5,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void isFinite_8a23ad() {
   bool3 res = isfinite(float3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   isFinite_8a23ad();
   return float4();
diff --git a/test/builtins/gen/isFinite/f31987.wgsl.expected.msl b/test/builtins/gen/isFinite/f31987.wgsl.expected.msl
index 4a0ac00..8a1511a 100644
--- a/test/builtins/gen/isFinite/f31987.wgsl.expected.msl
+++ b/test/builtins/gen/isFinite/f31987.wgsl.expected.msl
@@ -5,14 +5,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void isFinite_f31987() {
   bool4 res = isfinite(float4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   isFinite_f31987();
   return float4();
diff --git a/test/builtins/gen/isInf/666f2a.wgsl.expected.msl b/test/builtins/gen/isInf/666f2a.wgsl.expected.msl
index 4b65427..e9cc7a0 100644
--- a/test/builtins/gen/isInf/666f2a.wgsl.expected.msl
+++ b/test/builtins/gen/isInf/666f2a.wgsl.expected.msl
@@ -5,14 +5,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void isInf_666f2a() {
   bool3 res = isinf(float3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   isInf_666f2a();
   return float4();
diff --git a/test/builtins/gen/isInf/7bd98f.wgsl.expected.msl b/test/builtins/gen/isInf/7bd98f.wgsl.expected.msl
index d5894d2..a79b870 100644
--- a/test/builtins/gen/isInf/7bd98f.wgsl.expected.msl
+++ b/test/builtins/gen/isInf/7bd98f.wgsl.expected.msl
@@ -5,14 +5,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void isInf_7bd98f() {
   bool res = isinf(1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   isInf_7bd98f();
   return float4();
diff --git a/test/builtins/gen/isInf/7e81b5.wgsl.expected.msl b/test/builtins/gen/isInf/7e81b5.wgsl.expected.msl
index e41bafa..f553fa9 100644
--- a/test/builtins/gen/isInf/7e81b5.wgsl.expected.msl
+++ b/test/builtins/gen/isInf/7e81b5.wgsl.expected.msl
@@ -5,14 +5,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void isInf_7e81b5() {
   bool4 res = isinf(float4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   isInf_7e81b5();
   return float4();
diff --git a/test/builtins/gen/isInf/a46d6f.wgsl.expected.msl b/test/builtins/gen/isInf/a46d6f.wgsl.expected.msl
index 50474b5..0910502 100644
--- a/test/builtins/gen/isInf/a46d6f.wgsl.expected.msl
+++ b/test/builtins/gen/isInf/a46d6f.wgsl.expected.msl
@@ -5,14 +5,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void isInf_a46d6f() {
   bool2 res = isinf(float2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   isInf_a46d6f();
   return float4();
diff --git a/test/builtins/gen/isNan/1280ab.wgsl.expected.msl b/test/builtins/gen/isNan/1280ab.wgsl.expected.msl
index ea4a124..7df4b32 100644
--- a/test/builtins/gen/isNan/1280ab.wgsl.expected.msl
+++ b/test/builtins/gen/isNan/1280ab.wgsl.expected.msl
@@ -5,14 +5,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void isNan_1280ab() {
   bool3 res = isnan(float3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   isNan_1280ab();
   return float4();
diff --git a/test/builtins/gen/isNan/4d280d.wgsl.expected.msl b/test/builtins/gen/isNan/4d280d.wgsl.expected.msl
index 3aeb871..f66e036 100644
--- a/test/builtins/gen/isNan/4d280d.wgsl.expected.msl
+++ b/test/builtins/gen/isNan/4d280d.wgsl.expected.msl
@@ -5,14 +5,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void isNan_4d280d() {
   bool4 res = isnan(float4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   isNan_4d280d();
   return float4();
diff --git a/test/builtins/gen/isNan/67ecd3.wgsl.expected.msl b/test/builtins/gen/isNan/67ecd3.wgsl.expected.msl
index b992e74..c858131 100644
--- a/test/builtins/gen/isNan/67ecd3.wgsl.expected.msl
+++ b/test/builtins/gen/isNan/67ecd3.wgsl.expected.msl
@@ -5,14 +5,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void isNan_67ecd3() {
   bool2 res = isnan(float2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   isNan_67ecd3();
   return float4();
diff --git a/test/builtins/gen/isNan/e4978e.wgsl.expected.msl b/test/builtins/gen/isNan/e4978e.wgsl.expected.msl
index 8ebb00d..c27efc6 100644
--- a/test/builtins/gen/isNan/e4978e.wgsl.expected.msl
+++ b/test/builtins/gen/isNan/e4978e.wgsl.expected.msl
@@ -5,14 +5,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void isNan_e4978e() {
   bool res = isnan(1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   isNan_e4978e();
   return float4();
diff --git a/test/builtins/gen/isNormal/863dcd.wgsl.expected.msl b/test/builtins/gen/isNormal/863dcd.wgsl.expected.msl
index 5844ab9..0096320 100644
--- a/test/builtins/gen/isNormal/863dcd.wgsl.expected.msl
+++ b/test/builtins/gen/isNormal/863dcd.wgsl.expected.msl
@@ -5,14 +5,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void isNormal_863dcd() {
   bool4 res = isnormal(float4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   isNormal_863dcd();
   return float4();
diff --git a/test/builtins/gen/isNormal/b00ab1.wgsl.expected.msl b/test/builtins/gen/isNormal/b00ab1.wgsl.expected.msl
index 1203fa9..0a98a92 100644
--- a/test/builtins/gen/isNormal/b00ab1.wgsl.expected.msl
+++ b/test/builtins/gen/isNormal/b00ab1.wgsl.expected.msl
@@ -5,14 +5,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void isNormal_b00ab1() {
   bool2 res = isnormal(float2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   isNormal_b00ab1();
   return float4();
diff --git a/test/builtins/gen/isNormal/c286b7.wgsl.expected.msl b/test/builtins/gen/isNormal/c286b7.wgsl.expected.msl
index e344161..64d4c29 100644
--- a/test/builtins/gen/isNormal/c286b7.wgsl.expected.msl
+++ b/test/builtins/gen/isNormal/c286b7.wgsl.expected.msl
@@ -5,14 +5,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void isNormal_c286b7() {
   bool3 res = isnormal(float3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   isNormal_c286b7();
   return float4();
diff --git a/test/builtins/gen/isNormal/c6e880.wgsl.expected.msl b/test/builtins/gen/isNormal/c6e880.wgsl.expected.msl
index 94dd83f..ed1ec2c 100644
--- a/test/builtins/gen/isNormal/c6e880.wgsl.expected.msl
+++ b/test/builtins/gen/isNormal/c6e880.wgsl.expected.msl
@@ -5,14 +5,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void isNormal_c6e880() {
   bool res = isnormal(1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   isNormal_c6e880();
   return float4();
diff --git a/test/builtins/gen/ldexp/a31cdc.wgsl.expected.msl b/test/builtins/gen/ldexp/a31cdc.wgsl.expected.msl
index 3511264..da7d8a9 100644
--- a/test/builtins/gen/ldexp/a31cdc.wgsl.expected.msl
+++ b/test/builtins/gen/ldexp/a31cdc.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void ldexp_a31cdc() {
   float3 res = ldexp(float3(), int3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   ldexp_a31cdc();
   return float4();
diff --git a/test/builtins/gen/ldexp/abd718.wgsl.expected.msl b/test/builtins/gen/ldexp/abd718.wgsl.expected.msl
index 965657d..b46988b 100644
--- a/test/builtins/gen/ldexp/abd718.wgsl.expected.msl
+++ b/test/builtins/gen/ldexp/abd718.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void ldexp_abd718() {
   float2 res = ldexp(float2(), int2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   ldexp_abd718();
   return float4();
diff --git a/test/builtins/gen/ldexp/cc9cde.wgsl.expected.msl b/test/builtins/gen/ldexp/cc9cde.wgsl.expected.msl
index d36b5b4..4d7d64a 100644
--- a/test/builtins/gen/ldexp/cc9cde.wgsl.expected.msl
+++ b/test/builtins/gen/ldexp/cc9cde.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void ldexp_cc9cde() {
   float4 res = ldexp(float4(), int4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   ldexp_cc9cde();
   return float4();
diff --git a/test/builtins/gen/ldexp/db8b49.wgsl.expected.msl b/test/builtins/gen/ldexp/db8b49.wgsl.expected.msl
index 0449b75..e0e7607 100644
--- a/test/builtins/gen/ldexp/db8b49.wgsl.expected.msl
+++ b/test/builtins/gen/ldexp/db8b49.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void ldexp_db8b49() {
   float res = ldexp(1.0f, 1);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   ldexp_db8b49();
   return float4();
diff --git a/test/builtins/gen/length/056071.wgsl.expected.msl b/test/builtins/gen/length/056071.wgsl.expected.msl
index 963de37..689f9df 100644
--- a/test/builtins/gen/length/056071.wgsl.expected.msl
+++ b/test/builtins/gen/length/056071.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void length_056071() {
   float res = length(float3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   length_056071();
   return float4();
diff --git a/test/builtins/gen/length/602a17.wgsl.expected.msl b/test/builtins/gen/length/602a17.wgsl.expected.msl
index 4555bbc..ad3b7df 100644
--- a/test/builtins/gen/length/602a17.wgsl.expected.msl
+++ b/test/builtins/gen/length/602a17.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void length_602a17() {
   float res = fabs(1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   length_602a17();
   return float4();
diff --git a/test/builtins/gen/length/afde8b.wgsl.expected.msl b/test/builtins/gen/length/afde8b.wgsl.expected.msl
index 46a073c..4e2db8d 100644
--- a/test/builtins/gen/length/afde8b.wgsl.expected.msl
+++ b/test/builtins/gen/length/afde8b.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void length_afde8b() {
   float res = length(float2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   length_afde8b();
   return float4();
diff --git a/test/builtins/gen/length/becebf.wgsl.expected.msl b/test/builtins/gen/length/becebf.wgsl.expected.msl
index 1ffc1d2..080f45e 100644
--- a/test/builtins/gen/length/becebf.wgsl.expected.msl
+++ b/test/builtins/gen/length/becebf.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void length_becebf() {
   float res = length(float4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   length_becebf();
   return float4();
diff --git a/test/builtins/gen/log/3da25a.wgsl.expected.msl b/test/builtins/gen/log/3da25a.wgsl.expected.msl
index fcb512d..d87aca8 100644
--- a/test/builtins/gen/log/3da25a.wgsl.expected.msl
+++ b/test/builtins/gen/log/3da25a.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void log_3da25a() {
   float4 res = log(float4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   log_3da25a();
   return float4();
diff --git a/test/builtins/gen/log/7114a6.wgsl.expected.msl b/test/builtins/gen/log/7114a6.wgsl.expected.msl
index 82dd4d7..5ec0b4d 100644
--- a/test/builtins/gen/log/7114a6.wgsl.expected.msl
+++ b/test/builtins/gen/log/7114a6.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void log_7114a6() {
   float res = log(1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   log_7114a6();
   return float4();
diff --git a/test/builtins/gen/log/b2ce28.wgsl.expected.msl b/test/builtins/gen/log/b2ce28.wgsl.expected.msl
index 63978b8..a99ad96 100644
--- a/test/builtins/gen/log/b2ce28.wgsl.expected.msl
+++ b/test/builtins/gen/log/b2ce28.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void log_b2ce28() {
   float2 res = log(float2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   log_b2ce28();
   return float4();
diff --git a/test/builtins/gen/log/f4c570.wgsl.expected.msl b/test/builtins/gen/log/f4c570.wgsl.expected.msl
index c54fe04..2b95150 100644
--- a/test/builtins/gen/log/f4c570.wgsl.expected.msl
+++ b/test/builtins/gen/log/f4c570.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void log_f4c570() {
   float3 res = log(float3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   log_f4c570();
   return float4();
diff --git a/test/builtins/gen/log2/4036ed.wgsl.expected.msl b/test/builtins/gen/log2/4036ed.wgsl.expected.msl
index 4cafdca..a0e2529 100644
--- a/test/builtins/gen/log2/4036ed.wgsl.expected.msl
+++ b/test/builtins/gen/log2/4036ed.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void log2_4036ed() {
   float res = log2(1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   log2_4036ed();
   return float4();
diff --git a/test/builtins/gen/log2/902988.wgsl.expected.msl b/test/builtins/gen/log2/902988.wgsl.expected.msl
index a45104b..e3aa073 100644
--- a/test/builtins/gen/log2/902988.wgsl.expected.msl
+++ b/test/builtins/gen/log2/902988.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void log2_902988() {
   float4 res = log2(float4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   log2_902988();
   return float4();
diff --git a/test/builtins/gen/log2/adb233.wgsl.expected.msl b/test/builtins/gen/log2/adb233.wgsl.expected.msl
index f591c83..44c818c 100644
--- a/test/builtins/gen/log2/adb233.wgsl.expected.msl
+++ b/test/builtins/gen/log2/adb233.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void log2_adb233() {
   float3 res = log2(float3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   log2_adb233();
   return float4();
diff --git a/test/builtins/gen/log2/aea659.wgsl.expected.msl b/test/builtins/gen/log2/aea659.wgsl.expected.msl
index 8cc3dda..52b6a1a 100644
--- a/test/builtins/gen/log2/aea659.wgsl.expected.msl
+++ b/test/builtins/gen/log2/aea659.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void log2_aea659() {
   float2 res = log2(float2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   log2_aea659();
   return float4();
diff --git a/test/builtins/gen/max/0c0aae.wgsl.expected.msl b/test/builtins/gen/max/0c0aae.wgsl.expected.msl
index 400ec27..5f95e21 100644
--- a/test/builtins/gen/max/0c0aae.wgsl.expected.msl
+++ b/test/builtins/gen/max/0c0aae.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void max_0c0aae() {
   uint res = max(1u, 1u);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   max_0c0aae();
   return float4();
diff --git a/test/builtins/gen/max/25eafe.wgsl.expected.msl b/test/builtins/gen/max/25eafe.wgsl.expected.msl
index 1705907..31bd611 100644
--- a/test/builtins/gen/max/25eafe.wgsl.expected.msl
+++ b/test/builtins/gen/max/25eafe.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void max_25eafe() {
   int3 res = max(int3(), int3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   max_25eafe();
   return float4();
diff --git a/test/builtins/gen/max/320815.wgsl.expected.msl b/test/builtins/gen/max/320815.wgsl.expected.msl
index 0f5ffdd..a135a3c 100644
--- a/test/builtins/gen/max/320815.wgsl.expected.msl
+++ b/test/builtins/gen/max/320815.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void max_320815() {
   uint2 res = max(uint2(), uint2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   max_320815();
   return float4();
diff --git a/test/builtins/gen/max/44a39d.wgsl.expected.msl b/test/builtins/gen/max/44a39d.wgsl.expected.msl
index 8d18edf..11575ec 100644
--- a/test/builtins/gen/max/44a39d.wgsl.expected.msl
+++ b/test/builtins/gen/max/44a39d.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void max_44a39d() {
   float res = fmax(1.0f, 1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   max_44a39d();
   return float4();
diff --git a/test/builtins/gen/max/453e04.wgsl.expected.msl b/test/builtins/gen/max/453e04.wgsl.expected.msl
index 6891927..86de3a0 100644
--- a/test/builtins/gen/max/453e04.wgsl.expected.msl
+++ b/test/builtins/gen/max/453e04.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void max_453e04() {
   uint4 res = max(uint4(), uint4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   max_453e04();
   return float4();
diff --git a/test/builtins/gen/max/462050.wgsl.expected.msl b/test/builtins/gen/max/462050.wgsl.expected.msl
index 71ab570..825b974 100644
--- a/test/builtins/gen/max/462050.wgsl.expected.msl
+++ b/test/builtins/gen/max/462050.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void max_462050() {
   float2 res = fmax(float2(), float2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   max_462050();
   return float4();
diff --git a/test/builtins/gen/max/4883ac.wgsl.expected.msl b/test/builtins/gen/max/4883ac.wgsl.expected.msl
index 802c27b..199fa39 100644
--- a/test/builtins/gen/max/4883ac.wgsl.expected.msl
+++ b/test/builtins/gen/max/4883ac.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void max_4883ac() {
   float3 res = fmax(float3(), float3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   max_4883ac();
   return float4();
diff --git a/test/builtins/gen/max/85e6bc.wgsl.expected.msl b/test/builtins/gen/max/85e6bc.wgsl.expected.msl
index 85b4a75..48d92f6 100644
--- a/test/builtins/gen/max/85e6bc.wgsl.expected.msl
+++ b/test/builtins/gen/max/85e6bc.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void max_85e6bc() {
   int4 res = max(int4(), int4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   max_85e6bc();
   return float4();
diff --git a/test/builtins/gen/max/a93419.wgsl.expected.msl b/test/builtins/gen/max/a93419.wgsl.expected.msl
index ba628fd..c5d8364 100644
--- a/test/builtins/gen/max/a93419.wgsl.expected.msl
+++ b/test/builtins/gen/max/a93419.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void max_a93419() {
   float4 res = fmax(float4(), float4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   max_a93419();
   return float4();
diff --git a/test/builtins/gen/max/b1b73a.wgsl.expected.msl b/test/builtins/gen/max/b1b73a.wgsl.expected.msl
index c721edb..410e0f5 100644
--- a/test/builtins/gen/max/b1b73a.wgsl.expected.msl
+++ b/test/builtins/gen/max/b1b73a.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void max_b1b73a() {
   uint3 res = max(uint3(), uint3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   max_b1b73a();
   return float4();
diff --git a/test/builtins/gen/max/ce7c30.wgsl.expected.msl b/test/builtins/gen/max/ce7c30.wgsl.expected.msl
index 76113dc..50b1952 100644
--- a/test/builtins/gen/max/ce7c30.wgsl.expected.msl
+++ b/test/builtins/gen/max/ce7c30.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void max_ce7c30() {
   int res = max(1, 1);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   max_ce7c30();
   return float4();
diff --git a/test/builtins/gen/max/e8192f.wgsl.expected.msl b/test/builtins/gen/max/e8192f.wgsl.expected.msl
index 8c22fae..7c7f9ac 100644
--- a/test/builtins/gen/max/e8192f.wgsl.expected.msl
+++ b/test/builtins/gen/max/e8192f.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void max_e8192f() {
   int2 res = max(int2(), int2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   max_e8192f();
   return float4();
diff --git a/test/builtins/gen/min/03c7e3.wgsl.expected.msl b/test/builtins/gen/min/03c7e3.wgsl.expected.msl
index 8c76659..f01b97e 100644
--- a/test/builtins/gen/min/03c7e3.wgsl.expected.msl
+++ b/test/builtins/gen/min/03c7e3.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void min_03c7e3() {
   int2 res = min(int2(), int2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   min_03c7e3();
   return float4();
diff --git a/test/builtins/gen/min/0dc614.wgsl.expected.msl b/test/builtins/gen/min/0dc614.wgsl.expected.msl
index a38f386..f5f7920 100644
--- a/test/builtins/gen/min/0dc614.wgsl.expected.msl
+++ b/test/builtins/gen/min/0dc614.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void min_0dc614() {
   uint4 res = min(uint4(), uint4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   min_0dc614();
   return float4();
diff --git a/test/builtins/gen/min/3941e1.wgsl.expected.msl b/test/builtins/gen/min/3941e1.wgsl.expected.msl
index 07dbf3c..ec36ed8 100644
--- a/test/builtins/gen/min/3941e1.wgsl.expected.msl
+++ b/test/builtins/gen/min/3941e1.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void min_3941e1() {
   int4 res = min(int4(), int4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   min_3941e1();
   return float4();
diff --git a/test/builtins/gen/min/46c5d3.wgsl.expected.msl b/test/builtins/gen/min/46c5d3.wgsl.expected.msl
index 736c305..3c8a19e 100644
--- a/test/builtins/gen/min/46c5d3.wgsl.expected.msl
+++ b/test/builtins/gen/min/46c5d3.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void min_46c5d3() {
   uint res = min(1u, 1u);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   min_46c5d3();
   return float4();
diff --git a/test/builtins/gen/min/82b28f.wgsl.expected.msl b/test/builtins/gen/min/82b28f.wgsl.expected.msl
index b0aac8c..65bbe6b 100644
--- a/test/builtins/gen/min/82b28f.wgsl.expected.msl
+++ b/test/builtins/gen/min/82b28f.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void min_82b28f() {
   uint2 res = min(uint2(), uint2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   min_82b28f();
   return float4();
diff --git a/test/builtins/gen/min/93cfc4.wgsl.expected.msl b/test/builtins/gen/min/93cfc4.wgsl.expected.msl
index e6bf1c4..bf29c67 100644
--- a/test/builtins/gen/min/93cfc4.wgsl.expected.msl
+++ b/test/builtins/gen/min/93cfc4.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void min_93cfc4() {
   float3 res = fmin(float3(), float3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   min_93cfc4();
   return float4();
diff --git a/test/builtins/gen/min/a45171.wgsl.expected.msl b/test/builtins/gen/min/a45171.wgsl.expected.msl
index b6a8f9e..1a4e902 100644
--- a/test/builtins/gen/min/a45171.wgsl.expected.msl
+++ b/test/builtins/gen/min/a45171.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void min_a45171() {
   int3 res = min(int3(), int3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   min_a45171();
   return float4();
diff --git a/test/builtins/gen/min/aa28ad.wgsl.expected.msl b/test/builtins/gen/min/aa28ad.wgsl.expected.msl
index c393a51..8a5d68d 100644
--- a/test/builtins/gen/min/aa28ad.wgsl.expected.msl
+++ b/test/builtins/gen/min/aa28ad.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void min_aa28ad() {
   float2 res = fmin(float2(), float2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   min_aa28ad();
   return float4();
diff --git a/test/builtins/gen/min/af326d.wgsl.expected.msl b/test/builtins/gen/min/af326d.wgsl.expected.msl
index 60010da..a374198 100644
--- a/test/builtins/gen/min/af326d.wgsl.expected.msl
+++ b/test/builtins/gen/min/af326d.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void min_af326d() {
   float res = fmin(1.0f, 1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   min_af326d();
   return float4();
diff --git a/test/builtins/gen/min/c70bb7.wgsl.expected.msl b/test/builtins/gen/min/c70bb7.wgsl.expected.msl
index 6fb97f0..75707f7 100644
--- a/test/builtins/gen/min/c70bb7.wgsl.expected.msl
+++ b/test/builtins/gen/min/c70bb7.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void min_c70bb7() {
   uint3 res = min(uint3(), uint3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   min_c70bb7();
   return float4();
diff --git a/test/builtins/gen/min/c73147.wgsl.expected.msl b/test/builtins/gen/min/c73147.wgsl.expected.msl
index 9873e62..94a8da2 100644
--- a/test/builtins/gen/min/c73147.wgsl.expected.msl
+++ b/test/builtins/gen/min/c73147.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void min_c73147() {
   int res = min(1, 1);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   min_c73147();
   return float4();
diff --git a/test/builtins/gen/min/c76fa6.wgsl.expected.msl b/test/builtins/gen/min/c76fa6.wgsl.expected.msl
index a1dedfa..7af41b6 100644
--- a/test/builtins/gen/min/c76fa6.wgsl.expected.msl
+++ b/test/builtins/gen/min/c76fa6.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void min_c76fa6() {
   float4 res = fmin(float4(), float4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   min_c76fa6();
   return float4();
diff --git a/test/builtins/gen/mix/0c8c33.wgsl.expected.msl b/test/builtins/gen/mix/0c8c33.wgsl.expected.msl
index dbeda2b..8f33abf 100644
--- a/test/builtins/gen/mix/0c8c33.wgsl.expected.msl
+++ b/test/builtins/gen/mix/0c8c33.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void mix_0c8c33() {
   float3 res = mix(float3(), float3(), float3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   mix_0c8c33();
   return float4();
diff --git a/test/builtins/gen/mix/1faeb1.wgsl.expected.msl b/test/builtins/gen/mix/1faeb1.wgsl.expected.msl
index b42db51..89175cf 100644
--- a/test/builtins/gen/mix/1faeb1.wgsl.expected.msl
+++ b/test/builtins/gen/mix/1faeb1.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void mix_1faeb1() {
   float4 res = mix(float4(), float4(), 1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   mix_1faeb1();
   return float4();
diff --git a/test/builtins/gen/mix/2fadab.wgsl.expected.msl b/test/builtins/gen/mix/2fadab.wgsl.expected.msl
index 8ad84f4..e6ce43a 100644
--- a/test/builtins/gen/mix/2fadab.wgsl.expected.msl
+++ b/test/builtins/gen/mix/2fadab.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void mix_2fadab() {
   float2 res = mix(float2(), float2(), 1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   mix_2fadab();
   return float4();
diff --git a/test/builtins/gen/mix/315264.wgsl.expected.msl b/test/builtins/gen/mix/315264.wgsl.expected.msl
index 65c7fa3..a9110a3 100644
--- a/test/builtins/gen/mix/315264.wgsl.expected.msl
+++ b/test/builtins/gen/mix/315264.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void mix_315264() {
   float3 res = mix(float3(), float3(), 1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   mix_315264();
   return float4();
diff --git a/test/builtins/gen/mix/4f0b5e.wgsl.expected.msl b/test/builtins/gen/mix/4f0b5e.wgsl.expected.msl
index b2a1c58..1f7906d 100644
--- a/test/builtins/gen/mix/4f0b5e.wgsl.expected.msl
+++ b/test/builtins/gen/mix/4f0b5e.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void mix_4f0b5e() {
   float res = mix(1.0f, 1.0f, 1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   mix_4f0b5e();
   return float4();
diff --git a/test/builtins/gen/mix/6f8adc.wgsl.expected.msl b/test/builtins/gen/mix/6f8adc.wgsl.expected.msl
index fcd8a42..699f297 100644
--- a/test/builtins/gen/mix/6f8adc.wgsl.expected.msl
+++ b/test/builtins/gen/mix/6f8adc.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void mix_6f8adc() {
   float2 res = mix(float2(), float2(), float2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   mix_6f8adc();
   return float4();
diff --git a/test/builtins/gen/mix/c37ede.wgsl.expected.msl b/test/builtins/gen/mix/c37ede.wgsl.expected.msl
index 837f4f7..abe0dc7 100644
--- a/test/builtins/gen/mix/c37ede.wgsl.expected.msl
+++ b/test/builtins/gen/mix/c37ede.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void mix_c37ede() {
   float4 res = mix(float4(), float4(), float4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   mix_c37ede();
   return float4();
diff --git a/test/builtins/gen/modf/180fed.wgsl.expected.msl b/test/builtins/gen/modf/180fed.wgsl.expected.msl
index e05741f..d1f6d8b 100644
--- a/test/builtins/gen/modf/180fed.wgsl.expected.msl
+++ b/test/builtins/gen/modf/180fed.wgsl.expected.msl
@@ -12,14 +12,14 @@
   return {fract, whole};
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void modf_180fed() {
   modf_result res = tint_modf(1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   modf_180fed();
   return float4();
diff --git a/test/builtins/gen/modf/9b75f7.wgsl.expected.msl b/test/builtins/gen/modf/9b75f7.wgsl.expected.msl
index 460f07d..fcf035d 100644
--- a/test/builtins/gen/modf/9b75f7.wgsl.expected.msl
+++ b/test/builtins/gen/modf/9b75f7.wgsl.expected.msl
@@ -12,14 +12,14 @@
   return {fract, whole};
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void modf_9b75f7() {
   modf_result_vec3 res = tint_modf(float3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   modf_9b75f7();
   return float4();
diff --git a/test/builtins/gen/modf/ec2dbc.wgsl.expected.msl b/test/builtins/gen/modf/ec2dbc.wgsl.expected.msl
index be55de8..a62a85c 100644
--- a/test/builtins/gen/modf/ec2dbc.wgsl.expected.msl
+++ b/test/builtins/gen/modf/ec2dbc.wgsl.expected.msl
@@ -12,14 +12,14 @@
   return {fract, whole};
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void modf_ec2dbc() {
   modf_result_vec4 res = tint_modf(float4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   modf_ec2dbc();
   return float4();
diff --git a/test/builtins/gen/modf/f5f20d.wgsl.expected.msl b/test/builtins/gen/modf/f5f20d.wgsl.expected.msl
index 2f7272b..f02e88b 100644
--- a/test/builtins/gen/modf/f5f20d.wgsl.expected.msl
+++ b/test/builtins/gen/modf/f5f20d.wgsl.expected.msl
@@ -12,14 +12,14 @@
   return {fract, whole};
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void modf_f5f20d() {
   modf_result_vec2 res = tint_modf(float2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   modf_f5f20d();
   return float4();
diff --git a/test/builtins/gen/normalize/64d8c0.wgsl.expected.msl b/test/builtins/gen/normalize/64d8c0.wgsl.expected.msl
index 5b15b59..844c52a 100644
--- a/test/builtins/gen/normalize/64d8c0.wgsl.expected.msl
+++ b/test/builtins/gen/normalize/64d8c0.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void normalize_64d8c0() {
   float3 res = normalize(float3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   normalize_64d8c0();
   return float4();
diff --git a/test/builtins/gen/normalize/9a0aab.wgsl.expected.msl b/test/builtins/gen/normalize/9a0aab.wgsl.expected.msl
index a8d81cb..7dd5c0a 100644
--- a/test/builtins/gen/normalize/9a0aab.wgsl.expected.msl
+++ b/test/builtins/gen/normalize/9a0aab.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void normalize_9a0aab() {
   float4 res = normalize(float4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   normalize_9a0aab();
   return float4();
diff --git a/test/builtins/gen/normalize/fc2ef1.wgsl.expected.msl b/test/builtins/gen/normalize/fc2ef1.wgsl.expected.msl
index 7d98555..1464466 100644
--- a/test/builtins/gen/normalize/fc2ef1.wgsl.expected.msl
+++ b/test/builtins/gen/normalize/fc2ef1.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void normalize_fc2ef1() {
   float2 res = normalize(float2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   normalize_fc2ef1();
   return float4();
diff --git a/test/builtins/gen/pack2x16float/0e97b3.wgsl.expected.msl b/test/builtins/gen/pack2x16float/0e97b3.wgsl.expected.msl
index 62fedd2..026b652 100644
--- a/test/builtins/gen/pack2x16float/0e97b3.wgsl.expected.msl
+++ b/test/builtins/gen/pack2x16float/0e97b3.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void pack2x16float_0e97b3() {
   uint res = as_type<uint>(half2(float2()));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   pack2x16float_0e97b3();
   return float4();
diff --git a/test/builtins/gen/pack2x16snorm/6c169b.wgsl.expected.msl b/test/builtins/gen/pack2x16snorm/6c169b.wgsl.expected.msl
index 02f839b..21fed1a 100644
--- a/test/builtins/gen/pack2x16snorm/6c169b.wgsl.expected.msl
+++ b/test/builtins/gen/pack2x16snorm/6c169b.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void pack2x16snorm_6c169b() {
   uint res = pack_float_to_snorm2x16(float2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   pack2x16snorm_6c169b();
   return float4();
diff --git a/test/builtins/gen/pack2x16unorm/0f08e4.wgsl.expected.msl b/test/builtins/gen/pack2x16unorm/0f08e4.wgsl.expected.msl
index d1928cc..f095a39 100644
--- a/test/builtins/gen/pack2x16unorm/0f08e4.wgsl.expected.msl
+++ b/test/builtins/gen/pack2x16unorm/0f08e4.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void pack2x16unorm_0f08e4() {
   uint res = pack_float_to_unorm2x16(float2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   pack2x16unorm_0f08e4();
   return float4();
diff --git a/test/builtins/gen/pack4x8snorm/4d22e7.wgsl.expected.msl b/test/builtins/gen/pack4x8snorm/4d22e7.wgsl.expected.msl
index 97b19e0..a38de4d 100644
--- a/test/builtins/gen/pack4x8snorm/4d22e7.wgsl.expected.msl
+++ b/test/builtins/gen/pack4x8snorm/4d22e7.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void pack4x8snorm_4d22e7() {
   uint res = pack_float_to_snorm4x8(float4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   pack4x8snorm_4d22e7();
   return float4();
diff --git a/test/builtins/gen/pack4x8unorm/95c456.wgsl.expected.msl b/test/builtins/gen/pack4x8unorm/95c456.wgsl.expected.msl
index 88ccdaf..55732e1 100644
--- a/test/builtins/gen/pack4x8unorm/95c456.wgsl.expected.msl
+++ b/test/builtins/gen/pack4x8unorm/95c456.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void pack4x8unorm_95c456() {
   uint res = pack_float_to_unorm4x8(float4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   pack4x8unorm_95c456();
   return float4();
diff --git a/test/builtins/gen/pow/04a908.wgsl.expected.msl b/test/builtins/gen/pow/04a908.wgsl.expected.msl
index 2f9b2a7..e1f2e81 100644
--- a/test/builtins/gen/pow/04a908.wgsl.expected.msl
+++ b/test/builtins/gen/pow/04a908.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void pow_04a908() {
   float4 res = pow(float4(), float4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   pow_04a908();
   return float4();
diff --git a/test/builtins/gen/pow/46e029.wgsl.expected.msl b/test/builtins/gen/pow/46e029.wgsl.expected.msl
index 5192fec..c2d8df3 100644
--- a/test/builtins/gen/pow/46e029.wgsl.expected.msl
+++ b/test/builtins/gen/pow/46e029.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void pow_46e029() {
   float res = pow(1.0f, 1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   pow_46e029();
   return float4();
diff --git a/test/builtins/gen/pow/4a46c9.wgsl.expected.msl b/test/builtins/gen/pow/4a46c9.wgsl.expected.msl
index 5e68719..69a2725 100644
--- a/test/builtins/gen/pow/4a46c9.wgsl.expected.msl
+++ b/test/builtins/gen/pow/4a46c9.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void pow_4a46c9() {
   float3 res = pow(float3(), float3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   pow_4a46c9();
   return float4();
diff --git a/test/builtins/gen/pow/e60ea5.wgsl.expected.msl b/test/builtins/gen/pow/e60ea5.wgsl.expected.msl
index bc4e9a2..4326466 100644
--- a/test/builtins/gen/pow/e60ea5.wgsl.expected.msl
+++ b/test/builtins/gen/pow/e60ea5.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void pow_e60ea5() {
   float2 res = pow(float2(), float2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   pow_e60ea5();
   return float4();
diff --git a/test/builtins/gen/radians/09b7fc.wgsl.expected.msl b/test/builtins/gen/radians/09b7fc.wgsl.expected.msl
index e021142..00e73d1 100644
--- a/test/builtins/gen/radians/09b7fc.wgsl.expected.msl
+++ b/test/builtins/gen/radians/09b7fc.wgsl.expected.msl
@@ -6,14 +6,14 @@
   return param_0 * 0.017453292519943295474;
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void radians_09b7fc() {
   float4 res = tint_radians(float4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   radians_09b7fc();
   return float4();
diff --git a/test/builtins/gen/radians/61687a.wgsl.expected.msl b/test/builtins/gen/radians/61687a.wgsl.expected.msl
index b930d5a..7a7e7e4 100644
--- a/test/builtins/gen/radians/61687a.wgsl.expected.msl
+++ b/test/builtins/gen/radians/61687a.wgsl.expected.msl
@@ -6,14 +6,14 @@
   return param_0 * 0.017453292519943295474;
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void radians_61687a() {
   float2 res = tint_radians(float2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   radians_61687a();
   return float4();
diff --git a/test/builtins/gen/radians/6b0ff2.wgsl.expected.msl b/test/builtins/gen/radians/6b0ff2.wgsl.expected.msl
index 2dabd61..e99ae97 100644
--- a/test/builtins/gen/radians/6b0ff2.wgsl.expected.msl
+++ b/test/builtins/gen/radians/6b0ff2.wgsl.expected.msl
@@ -6,14 +6,14 @@
   return param_0 * 0.017453292519943295474;
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void radians_6b0ff2() {
   float res = tint_radians(1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   radians_6b0ff2();
   return float4();
diff --git a/test/builtins/gen/radians/f96258.wgsl.expected.msl b/test/builtins/gen/radians/f96258.wgsl.expected.msl
index f0f343d..1667cdb 100644
--- a/test/builtins/gen/radians/f96258.wgsl.expected.msl
+++ b/test/builtins/gen/radians/f96258.wgsl.expected.msl
@@ -6,14 +6,14 @@
   return param_0 * 0.017453292519943295474;
 }
 
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void radians_f96258() {
   float3 res = tint_radians(float3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   radians_f96258();
   return float4();
diff --git a/test/builtins/gen/reflect/05357e.wgsl.expected.msl b/test/builtins/gen/reflect/05357e.wgsl.expected.msl
index 0b22eec..83ddfd9 100644
--- a/test/builtins/gen/reflect/05357e.wgsl.expected.msl
+++ b/test/builtins/gen/reflect/05357e.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void reflect_05357e() {
   float4 res = reflect(float4(), float4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   reflect_05357e();
   return float4();
diff --git a/test/builtins/gen/reflect/b61e10.wgsl.expected.msl b/test/builtins/gen/reflect/b61e10.wgsl.expected.msl
index 5d92438..8f70c6d 100644
--- a/test/builtins/gen/reflect/b61e10.wgsl.expected.msl
+++ b/test/builtins/gen/reflect/b61e10.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void reflect_b61e10() {
   float2 res = reflect(float2(), float2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   reflect_b61e10();
   return float4();
diff --git a/test/builtins/gen/reflect/f47fdb.wgsl.expected.msl b/test/builtins/gen/reflect/f47fdb.wgsl.expected.msl
index 93d48de..c3d1614 100644
--- a/test/builtins/gen/reflect/f47fdb.wgsl.expected.msl
+++ b/test/builtins/gen/reflect/f47fdb.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void reflect_f47fdb() {
   float3 res = reflect(float3(), float3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   reflect_f47fdb();
   return float4();
diff --git a/test/builtins/gen/refract/7e02e6.wgsl.expected.msl b/test/builtins/gen/refract/7e02e6.wgsl.expected.msl
index 9a66026..9fedc20 100644
--- a/test/builtins/gen/refract/7e02e6.wgsl.expected.msl
+++ b/test/builtins/gen/refract/7e02e6.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void refract_7e02e6() {
   float4 res = refract(float4(), float4(), 1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   refract_7e02e6();
   return float4();
diff --git a/test/builtins/gen/refract/cbc1d2.wgsl.expected.msl b/test/builtins/gen/refract/cbc1d2.wgsl.expected.msl
index 3ee38ac..ceb3738 100644
--- a/test/builtins/gen/refract/cbc1d2.wgsl.expected.msl
+++ b/test/builtins/gen/refract/cbc1d2.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void refract_cbc1d2() {
   float3 res = refract(float3(), float3(), 1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   refract_cbc1d2();
   return float4();
diff --git a/test/builtins/gen/refract/cd905f.wgsl.expected.msl b/test/builtins/gen/refract/cd905f.wgsl.expected.msl
index 2a3e898..878c80c 100644
--- a/test/builtins/gen/refract/cd905f.wgsl.expected.msl
+++ b/test/builtins/gen/refract/cd905f.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void refract_cd905f() {
   float2 res = refract(float2(), float2(), 1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   refract_cd905f();
   return float4();
diff --git a/test/builtins/gen/reverseBits/222177.wgsl.expected.msl b/test/builtins/gen/reverseBits/222177.wgsl.expected.msl
index a5df325..410b120 100644
--- a/test/builtins/gen/reverseBits/222177.wgsl.expected.msl
+++ b/test/builtins/gen/reverseBits/222177.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void reverseBits_222177() {
   int2 res = reverse_bits(int2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   reverseBits_222177();
   return float4();
diff --git a/test/builtins/gen/reverseBits/35fea9.wgsl.expected.msl b/test/builtins/gen/reverseBits/35fea9.wgsl.expected.msl
index ae0cd42..7cca1fe 100644
--- a/test/builtins/gen/reverseBits/35fea9.wgsl.expected.msl
+++ b/test/builtins/gen/reverseBits/35fea9.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void reverseBits_35fea9() {
   uint4 res = reverse_bits(uint4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   reverseBits_35fea9();
   return float4();
diff --git a/test/builtins/gen/reverseBits/4dbd6f.wgsl.expected.msl b/test/builtins/gen/reverseBits/4dbd6f.wgsl.expected.msl
index 6025abd..918b5e0 100644
--- a/test/builtins/gen/reverseBits/4dbd6f.wgsl.expected.msl
+++ b/test/builtins/gen/reverseBits/4dbd6f.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void reverseBits_4dbd6f() {
   int4 res = reverse_bits(int4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   reverseBits_4dbd6f();
   return float4();
diff --git a/test/builtins/gen/reverseBits/7c4269.wgsl.expected.msl b/test/builtins/gen/reverseBits/7c4269.wgsl.expected.msl
index 2fc2f84..0d28654 100644
--- a/test/builtins/gen/reverseBits/7c4269.wgsl.expected.msl
+++ b/test/builtins/gen/reverseBits/7c4269.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void reverseBits_7c4269() {
   int res = reverse_bits(1);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   reverseBits_7c4269();
   return float4();
diff --git a/test/builtins/gen/reverseBits/a6ccd4.wgsl.expected.msl b/test/builtins/gen/reverseBits/a6ccd4.wgsl.expected.msl
index dd61298..5c7819e 100644
--- a/test/builtins/gen/reverseBits/a6ccd4.wgsl.expected.msl
+++ b/test/builtins/gen/reverseBits/a6ccd4.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void reverseBits_a6ccd4() {
   uint3 res = reverse_bits(uint3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   reverseBits_a6ccd4();
   return float4();
diff --git a/test/builtins/gen/reverseBits/c21bc1.wgsl.expected.msl b/test/builtins/gen/reverseBits/c21bc1.wgsl.expected.msl
index dd74edb..b960eec 100644
--- a/test/builtins/gen/reverseBits/c21bc1.wgsl.expected.msl
+++ b/test/builtins/gen/reverseBits/c21bc1.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void reverseBits_c21bc1() {
   int3 res = reverse_bits(int3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   reverseBits_c21bc1();
   return float4();
diff --git a/test/builtins/gen/reverseBits/e1f4c1.wgsl.expected.msl b/test/builtins/gen/reverseBits/e1f4c1.wgsl.expected.msl
index caf2e65..fc9ebd2 100644
--- a/test/builtins/gen/reverseBits/e1f4c1.wgsl.expected.msl
+++ b/test/builtins/gen/reverseBits/e1f4c1.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void reverseBits_e1f4c1() {
   uint2 res = reverse_bits(uint2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   reverseBits_e1f4c1();
   return float4();
diff --git a/test/builtins/gen/reverseBits/e31adf.wgsl.expected.msl b/test/builtins/gen/reverseBits/e31adf.wgsl.expected.msl
index e80be35..fb3d3f2 100644
--- a/test/builtins/gen/reverseBits/e31adf.wgsl.expected.msl
+++ b/test/builtins/gen/reverseBits/e31adf.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void reverseBits_e31adf() {
   uint res = reverse_bits(1u);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   reverseBits_e31adf();
   return float4();
diff --git a/test/builtins/gen/round/106c0b.wgsl.expected.msl b/test/builtins/gen/round/106c0b.wgsl.expected.msl
index 7acb365..be166bf 100644
--- a/test/builtins/gen/round/106c0b.wgsl.expected.msl
+++ b/test/builtins/gen/round/106c0b.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void round_106c0b() {
   float4 res = rint(float4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   round_106c0b();
   return float4();
diff --git a/test/builtins/gen/round/1c7897.wgsl.expected.msl b/test/builtins/gen/round/1c7897.wgsl.expected.msl
index 305f9fe..85dda28 100644
--- a/test/builtins/gen/round/1c7897.wgsl.expected.msl
+++ b/test/builtins/gen/round/1c7897.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void round_1c7897() {
   float3 res = rint(float3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   round_1c7897();
   return float4();
diff --git a/test/builtins/gen/round/52c84d.wgsl.expected.msl b/test/builtins/gen/round/52c84d.wgsl.expected.msl
index 3f93205..87e2b21 100644
--- a/test/builtins/gen/round/52c84d.wgsl.expected.msl
+++ b/test/builtins/gen/round/52c84d.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void round_52c84d() {
   float2 res = rint(float2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   round_52c84d();
   return float4();
diff --git a/test/builtins/gen/round/9edc38.wgsl.expected.msl b/test/builtins/gen/round/9edc38.wgsl.expected.msl
index 229b708..a3f14ae 100644
--- a/test/builtins/gen/round/9edc38.wgsl.expected.msl
+++ b/test/builtins/gen/round/9edc38.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void round_9edc38() {
   float res = rint(1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   round_9edc38();
   return float4();
diff --git a/test/builtins/gen/select/00b848.wgsl.expected.msl b/test/builtins/gen/select/00b848.wgsl.expected.msl
index 03f191d..79cd705 100644
--- a/test/builtins/gen/select/00b848.wgsl.expected.msl
+++ b/test/builtins/gen/select/00b848.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void select_00b848() {
   int2 res = select(int2(), int2(), bool2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   select_00b848();
   return float4();
diff --git a/test/builtins/gen/select/01e2cd.wgsl.expected.msl b/test/builtins/gen/select/01e2cd.wgsl.expected.msl
index 2cef21a..f7618ae 100644
--- a/test/builtins/gen/select/01e2cd.wgsl.expected.msl
+++ b/test/builtins/gen/select/01e2cd.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void select_01e2cd() {
   int3 res = select(int3(), int3(), bool3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   select_01e2cd();
   return float4();
diff --git a/test/builtins/gen/select/087ea4.wgsl.expected.msl b/test/builtins/gen/select/087ea4.wgsl.expected.msl
index 05ab4d2..4838d99 100644
--- a/test/builtins/gen/select/087ea4.wgsl.expected.msl
+++ b/test/builtins/gen/select/087ea4.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void select_087ea4() {
   uint4 res = select(uint4(), uint4(), bool());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   select_087ea4();
   return float4();
diff --git a/test/builtins/gen/select/1e960b.wgsl.expected.msl b/test/builtins/gen/select/1e960b.wgsl.expected.msl
index 08587c9..87b1150 100644
--- a/test/builtins/gen/select/1e960b.wgsl.expected.msl
+++ b/test/builtins/gen/select/1e960b.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void select_1e960b() {
   uint2 res = select(uint2(), uint2(), bool2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   select_1e960b();
   return float4();
diff --git a/test/builtins/gen/select/266aff.wgsl.expected.msl b/test/builtins/gen/select/266aff.wgsl.expected.msl
index b822f68..56688e6 100644
--- a/test/builtins/gen/select/266aff.wgsl.expected.msl
+++ b/test/builtins/gen/select/266aff.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void select_266aff() {
   float2 res = select(float2(), float2(), bool2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   select_266aff();
   return float4();
diff --git a/test/builtins/gen/select/28a27e.wgsl.expected.msl b/test/builtins/gen/select/28a27e.wgsl.expected.msl
index 6571af4..2e21e18 100644
--- a/test/builtins/gen/select/28a27e.wgsl.expected.msl
+++ b/test/builtins/gen/select/28a27e.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void select_28a27e() {
   uint3 res = select(uint3(), uint3(), bool3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   select_28a27e();
   return float4();
diff --git a/test/builtins/gen/select/3c25ce.wgsl.expected.msl b/test/builtins/gen/select/3c25ce.wgsl.expected.msl
index a0aea42..8a73c36 100644
--- a/test/builtins/gen/select/3c25ce.wgsl.expected.msl
+++ b/test/builtins/gen/select/3c25ce.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void select_3c25ce() {
   bool3 res = select(bool3(), bool3(), bool());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   select_3c25ce();
   return float4();
diff --git a/test/builtins/gen/select/416e14.wgsl.expected.msl b/test/builtins/gen/select/416e14.wgsl.expected.msl
index 798efaa..1e57158 100644
--- a/test/builtins/gen/select/416e14.wgsl.expected.msl
+++ b/test/builtins/gen/select/416e14.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void select_416e14() {
   float res = select(1.0f, 1.0f, bool());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   select_416e14();
   return float4();
diff --git a/test/builtins/gen/select/51b047.wgsl.expected.msl b/test/builtins/gen/select/51b047.wgsl.expected.msl
index e6309d0..42e6e3a 100644
--- a/test/builtins/gen/select/51b047.wgsl.expected.msl
+++ b/test/builtins/gen/select/51b047.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void select_51b047() {
   uint2 res = select(uint2(), uint2(), bool());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   select_51b047();
   return float4();
diff --git a/test/builtins/gen/select/713567.wgsl.expected.msl b/test/builtins/gen/select/713567.wgsl.expected.msl
index 3130a7e..6767e85 100644
--- a/test/builtins/gen/select/713567.wgsl.expected.msl
+++ b/test/builtins/gen/select/713567.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void select_713567() {
   float4 res = select(float4(), float4(), bool());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   select_713567();
   return float4();
diff --git a/test/builtins/gen/select/78be5f.wgsl.expected.msl b/test/builtins/gen/select/78be5f.wgsl.expected.msl
index 1cce498..8c39ad3 100644
--- a/test/builtins/gen/select/78be5f.wgsl.expected.msl
+++ b/test/builtins/gen/select/78be5f.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void select_78be5f() {
   float3 res = select(float3(), float3(), bool());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   select_78be5f();
   return float4();
diff --git a/test/builtins/gen/select/80a9a9.wgsl.expected.msl b/test/builtins/gen/select/80a9a9.wgsl.expected.msl
index dcc8d5d..37b2e99 100644
--- a/test/builtins/gen/select/80a9a9.wgsl.expected.msl
+++ b/test/builtins/gen/select/80a9a9.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void select_80a9a9() {
   bool3 res = select(bool3(), bool3(), bool3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   select_80a9a9();
   return float4();
diff --git a/test/builtins/gen/select/8fa62c.wgsl.expected.msl b/test/builtins/gen/select/8fa62c.wgsl.expected.msl
index f9d0f6f..4c9e887 100644
--- a/test/builtins/gen/select/8fa62c.wgsl.expected.msl
+++ b/test/builtins/gen/select/8fa62c.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void select_8fa62c() {
   int3 res = select(int3(), int3(), bool());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   select_8fa62c();
   return float4();
diff --git a/test/builtins/gen/select/99f883.wgsl.expected.msl b/test/builtins/gen/select/99f883.wgsl.expected.msl
index 5e9591a..4234994 100644
--- a/test/builtins/gen/select/99f883.wgsl.expected.msl
+++ b/test/builtins/gen/select/99f883.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void select_99f883() {
   uint res = select(1u, 1u, bool());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   select_99f883();
   return float4();
diff --git a/test/builtins/gen/select/a2860e.wgsl.expected.msl b/test/builtins/gen/select/a2860e.wgsl.expected.msl
index 2d2e322..c3b3db6 100644
--- a/test/builtins/gen/select/a2860e.wgsl.expected.msl
+++ b/test/builtins/gen/select/a2860e.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void select_a2860e() {
   int4 res = select(int4(), int4(), bool4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   select_a2860e();
   return float4();
diff --git a/test/builtins/gen/select/ab069f.wgsl.expected.msl b/test/builtins/gen/select/ab069f.wgsl.expected.msl
index c947937..dd19206 100644
--- a/test/builtins/gen/select/ab069f.wgsl.expected.msl
+++ b/test/builtins/gen/select/ab069f.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void select_ab069f() {
   int4 res = select(int4(), int4(), bool());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   select_ab069f();
   return float4();
diff --git a/test/builtins/gen/select/b04721.wgsl.expected.msl b/test/builtins/gen/select/b04721.wgsl.expected.msl
index 7a21e91..2b88455 100644
--- a/test/builtins/gen/select/b04721.wgsl.expected.msl
+++ b/test/builtins/gen/select/b04721.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void select_b04721() {
   uint3 res = select(uint3(), uint3(), bool());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   select_b04721();
   return float4();
diff --git a/test/builtins/gen/select/bb447f.wgsl.expected.msl b/test/builtins/gen/select/bb447f.wgsl.expected.msl
index d242cd5..d1517c9 100644
--- a/test/builtins/gen/select/bb447f.wgsl.expected.msl
+++ b/test/builtins/gen/select/bb447f.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void select_bb447f() {
   int2 res = select(int2(), int2(), bool());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   select_bb447f();
   return float4();
diff --git a/test/builtins/gen/select/bb8aae.wgsl.expected.msl b/test/builtins/gen/select/bb8aae.wgsl.expected.msl
index 41a021b..67c1179 100644
--- a/test/builtins/gen/select/bb8aae.wgsl.expected.msl
+++ b/test/builtins/gen/select/bb8aae.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void select_bb8aae() {
   float4 res = select(float4(), float4(), bool4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   select_bb8aae();
   return float4();
diff --git a/test/builtins/gen/select/bf3d29.wgsl.expected.msl b/test/builtins/gen/select/bf3d29.wgsl.expected.msl
index ba58d5b..af8a59e 100644
--- a/test/builtins/gen/select/bf3d29.wgsl.expected.msl
+++ b/test/builtins/gen/select/bf3d29.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void select_bf3d29() {
   float2 res = select(float2(), float2(), bool());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   select_bf3d29();
   return float4();
diff --git a/test/builtins/gen/select/c31f9e.wgsl.expected.msl b/test/builtins/gen/select/c31f9e.wgsl.expected.msl
index bd1d3b9..8e2a3b4 100644
--- a/test/builtins/gen/select/c31f9e.wgsl.expected.msl
+++ b/test/builtins/gen/select/c31f9e.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void select_c31f9e() {
   bool res = select(bool(), bool(), bool());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   select_c31f9e();
   return float4();
diff --git a/test/builtins/gen/select/c41bd1.wgsl.expected.msl b/test/builtins/gen/select/c41bd1.wgsl.expected.msl
index 0f8e67b..a344539 100644
--- a/test/builtins/gen/select/c41bd1.wgsl.expected.msl
+++ b/test/builtins/gen/select/c41bd1.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void select_c41bd1() {
   bool4 res = select(bool4(), bool4(), bool());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   select_c41bd1();
   return float4();
diff --git a/test/builtins/gen/select/c4a4ef.wgsl.expected.msl b/test/builtins/gen/select/c4a4ef.wgsl.expected.msl
index a963df9..6983033 100644
--- a/test/builtins/gen/select/c4a4ef.wgsl.expected.msl
+++ b/test/builtins/gen/select/c4a4ef.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void select_c4a4ef() {
   uint4 res = select(uint4(), uint4(), bool4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   select_c4a4ef();
   return float4();
diff --git a/test/builtins/gen/select/cb9301.wgsl.expected.msl b/test/builtins/gen/select/cb9301.wgsl.expected.msl
index 4e4d9bd..3854184 100644
--- a/test/builtins/gen/select/cb9301.wgsl.expected.msl
+++ b/test/builtins/gen/select/cb9301.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void select_cb9301() {
   bool2 res = select(bool2(), bool2(), bool2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   select_cb9301();
   return float4();
diff --git a/test/builtins/gen/select/e3e028.wgsl.expected.msl b/test/builtins/gen/select/e3e028.wgsl.expected.msl
index 56f88a6..6ea09b4 100644
--- a/test/builtins/gen/select/e3e028.wgsl.expected.msl
+++ b/test/builtins/gen/select/e3e028.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void select_e3e028() {
   bool4 res = select(bool4(), bool4(), bool4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   select_e3e028();
   return float4();
diff --git a/test/builtins/gen/select/ebfea2.wgsl.expected.msl b/test/builtins/gen/select/ebfea2.wgsl.expected.msl
index df91f64..ad19ed3 100644
--- a/test/builtins/gen/select/ebfea2.wgsl.expected.msl
+++ b/test/builtins/gen/select/ebfea2.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void select_ebfea2() {
   float3 res = select(float3(), float3(), bool3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   select_ebfea2();
   return float4();
diff --git a/test/builtins/gen/select/ed8a15.wgsl.expected.msl b/test/builtins/gen/select/ed8a15.wgsl.expected.msl
index 75aa87d..86b86d5 100644
--- a/test/builtins/gen/select/ed8a15.wgsl.expected.msl
+++ b/test/builtins/gen/select/ed8a15.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void select_ed8a15() {
   int res = select(1, 1, bool());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   select_ed8a15();
   return float4();
diff --git a/test/builtins/gen/select/fb7e53.wgsl.expected.msl b/test/builtins/gen/select/fb7e53.wgsl.expected.msl
index ced4250..7bd77e5 100644
--- a/test/builtins/gen/select/fb7e53.wgsl.expected.msl
+++ b/test/builtins/gen/select/fb7e53.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void select_fb7e53() {
   bool2 res = select(bool2(), bool2(), bool());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   select_fb7e53();
   return float4();
diff --git a/test/builtins/gen/sign/159665.wgsl.expected.msl b/test/builtins/gen/sign/159665.wgsl.expected.msl
index 4c75814..2ab6b4f 100644
--- a/test/builtins/gen/sign/159665.wgsl.expected.msl
+++ b/test/builtins/gen/sign/159665.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void sign_159665() {
   float3 res = sign(float3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   sign_159665();
   return float4();
diff --git a/test/builtins/gen/sign/b8f634.wgsl.expected.msl b/test/builtins/gen/sign/b8f634.wgsl.expected.msl
index b5b2a47..70a13b5 100644
--- a/test/builtins/gen/sign/b8f634.wgsl.expected.msl
+++ b/test/builtins/gen/sign/b8f634.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void sign_b8f634() {
   float4 res = sign(float4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   sign_b8f634();
   return float4();
diff --git a/test/builtins/gen/sign/d065d8.wgsl.expected.msl b/test/builtins/gen/sign/d065d8.wgsl.expected.msl
index f445351..2fd1896 100644
--- a/test/builtins/gen/sign/d065d8.wgsl.expected.msl
+++ b/test/builtins/gen/sign/d065d8.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void sign_d065d8() {
   float2 res = sign(float2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   sign_d065d8();
   return float4();
diff --git a/test/builtins/gen/sign/dd790e.wgsl.expected.msl b/test/builtins/gen/sign/dd790e.wgsl.expected.msl
index a3bb007..655bb10 100644
--- a/test/builtins/gen/sign/dd790e.wgsl.expected.msl
+++ b/test/builtins/gen/sign/dd790e.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void sign_dd790e() {
   float res = sign(1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   sign_dd790e();
   return float4();
diff --git a/test/builtins/gen/sin/01f241.wgsl.expected.msl b/test/builtins/gen/sin/01f241.wgsl.expected.msl
index 7f4629a..af988a6 100644
--- a/test/builtins/gen/sin/01f241.wgsl.expected.msl
+++ b/test/builtins/gen/sin/01f241.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void sin_01f241() {
   float3 res = sin(float3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   sin_01f241();
   return float4();
diff --git a/test/builtins/gen/sin/4e3979.wgsl.expected.msl b/test/builtins/gen/sin/4e3979.wgsl.expected.msl
index 5677bfe..90f5a93 100644
--- a/test/builtins/gen/sin/4e3979.wgsl.expected.msl
+++ b/test/builtins/gen/sin/4e3979.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void sin_4e3979() {
   float4 res = sin(float4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   sin_4e3979();
   return float4();
diff --git a/test/builtins/gen/sin/b78c91.wgsl.expected.msl b/test/builtins/gen/sin/b78c91.wgsl.expected.msl
index 2a253a7..b54d4fb 100644
--- a/test/builtins/gen/sin/b78c91.wgsl.expected.msl
+++ b/test/builtins/gen/sin/b78c91.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void sin_b78c91() {
   float res = sin(1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   sin_b78c91();
   return float4();
diff --git a/test/builtins/gen/sin/fc8bc4.wgsl.expected.msl b/test/builtins/gen/sin/fc8bc4.wgsl.expected.msl
index d0767a6..78417e9 100644
--- a/test/builtins/gen/sin/fc8bc4.wgsl.expected.msl
+++ b/test/builtins/gen/sin/fc8bc4.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void sin_fc8bc4() {
   float2 res = sin(float2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   sin_fc8bc4();
   return float4();
diff --git a/test/builtins/gen/sinh/445e33.wgsl.expected.msl b/test/builtins/gen/sinh/445e33.wgsl.expected.msl
index ee93c86..3361ddd 100644
--- a/test/builtins/gen/sinh/445e33.wgsl.expected.msl
+++ b/test/builtins/gen/sinh/445e33.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void sinh_445e33() {
   float4 res = sinh(float4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   sinh_445e33();
   return float4();
diff --git a/test/builtins/gen/sinh/7bb598.wgsl.expected.msl b/test/builtins/gen/sinh/7bb598.wgsl.expected.msl
index 5fa463b..52830a8 100644
--- a/test/builtins/gen/sinh/7bb598.wgsl.expected.msl
+++ b/test/builtins/gen/sinh/7bb598.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void sinh_7bb598() {
   float res = sinh(1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   sinh_7bb598();
   return float4();
diff --git a/test/builtins/gen/sinh/b9860e.wgsl.expected.msl b/test/builtins/gen/sinh/b9860e.wgsl.expected.msl
index 5a9085d..ca6289a 100644
--- a/test/builtins/gen/sinh/b9860e.wgsl.expected.msl
+++ b/test/builtins/gen/sinh/b9860e.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void sinh_b9860e() {
   float2 res = sinh(float2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   sinh_b9860e();
   return float4();
diff --git a/test/builtins/gen/sinh/c9a5eb.wgsl.expected.msl b/test/builtins/gen/sinh/c9a5eb.wgsl.expected.msl
index 9526f42..c9d2bb5 100644
--- a/test/builtins/gen/sinh/c9a5eb.wgsl.expected.msl
+++ b/test/builtins/gen/sinh/c9a5eb.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void sinh_c9a5eb() {
   float3 res = sinh(float3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   sinh_c9a5eb();
   return float4();
diff --git a/test/builtins/gen/smoothStep/5f615b.wgsl.expected.msl b/test/builtins/gen/smoothStep/5f615b.wgsl.expected.msl
index cad5dfe..152ed83 100644
--- a/test/builtins/gen/smoothStep/5f615b.wgsl.expected.msl
+++ b/test/builtins/gen/smoothStep/5f615b.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void smoothStep_5f615b() {
   float4 res = smoothstep(float4(), float4(), float4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   smoothStep_5f615b();
   return float4();
diff --git a/test/builtins/gen/smoothStep/658be3.wgsl.expected.msl b/test/builtins/gen/smoothStep/658be3.wgsl.expected.msl
index 7401ef0..8ab1665 100644
--- a/test/builtins/gen/smoothStep/658be3.wgsl.expected.msl
+++ b/test/builtins/gen/smoothStep/658be3.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void smoothStep_658be3() {
   float3 res = smoothstep(float3(), float3(), float3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   smoothStep_658be3();
   return float4();
diff --git a/test/builtins/gen/smoothStep/c11eef.wgsl.expected.msl b/test/builtins/gen/smoothStep/c11eef.wgsl.expected.msl
index 314e298..7ccef35 100644
--- a/test/builtins/gen/smoothStep/c11eef.wgsl.expected.msl
+++ b/test/builtins/gen/smoothStep/c11eef.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void smoothStep_c11eef() {
   float2 res = smoothstep(float2(), float2(), float2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   smoothStep_c11eef();
   return float4();
diff --git a/test/builtins/gen/smoothStep/cb0bfb.wgsl.expected.msl b/test/builtins/gen/smoothStep/cb0bfb.wgsl.expected.msl
index 12a37fb..0207382 100644
--- a/test/builtins/gen/smoothStep/cb0bfb.wgsl.expected.msl
+++ b/test/builtins/gen/smoothStep/cb0bfb.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void smoothStep_cb0bfb() {
   float res = smoothstep(1.0f, 1.0f, 1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   smoothStep_cb0bfb();
   return float4();
diff --git a/test/builtins/gen/sqrt/20c74e.wgsl.expected.msl b/test/builtins/gen/sqrt/20c74e.wgsl.expected.msl
index 81184ee..3a8c9e7 100644
--- a/test/builtins/gen/sqrt/20c74e.wgsl.expected.msl
+++ b/test/builtins/gen/sqrt/20c74e.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void sqrt_20c74e() {
   float res = sqrt(1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   sqrt_20c74e();
   return float4();
diff --git a/test/builtins/gen/sqrt/8c7024.wgsl.expected.msl b/test/builtins/gen/sqrt/8c7024.wgsl.expected.msl
index 3636dcc..ae85d89 100644
--- a/test/builtins/gen/sqrt/8c7024.wgsl.expected.msl
+++ b/test/builtins/gen/sqrt/8c7024.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void sqrt_8c7024() {
   float2 res = sqrt(float2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   sqrt_8c7024();
   return float4();
diff --git a/test/builtins/gen/sqrt/aa0d7a.wgsl.expected.msl b/test/builtins/gen/sqrt/aa0d7a.wgsl.expected.msl
index 4462596..08b1222 100644
--- a/test/builtins/gen/sqrt/aa0d7a.wgsl.expected.msl
+++ b/test/builtins/gen/sqrt/aa0d7a.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void sqrt_aa0d7a() {
   float4 res = sqrt(float4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   sqrt_aa0d7a();
   return float4();
diff --git a/test/builtins/gen/sqrt/f8c59a.wgsl.expected.msl b/test/builtins/gen/sqrt/f8c59a.wgsl.expected.msl
index b61342c..d93e68d 100644
--- a/test/builtins/gen/sqrt/f8c59a.wgsl.expected.msl
+++ b/test/builtins/gen/sqrt/f8c59a.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void sqrt_f8c59a() {
   float3 res = sqrt(float3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   sqrt_f8c59a();
   return float4();
diff --git a/test/builtins/gen/step/0b073b.wgsl.expected.msl b/test/builtins/gen/step/0b073b.wgsl.expected.msl
index 83bba3b..60774de 100644
--- a/test/builtins/gen/step/0b073b.wgsl.expected.msl
+++ b/test/builtins/gen/step/0b073b.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void step_0b073b() {
   float res = step(1.0f, 1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   step_0b073b();
   return float4();
diff --git a/test/builtins/gen/step/19accd.wgsl.expected.msl b/test/builtins/gen/step/19accd.wgsl.expected.msl
index fac1cc2..44dd9eb 100644
--- a/test/builtins/gen/step/19accd.wgsl.expected.msl
+++ b/test/builtins/gen/step/19accd.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void step_19accd() {
   float2 res = step(float2(), float2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   step_19accd();
   return float4();
diff --git a/test/builtins/gen/step/334303.wgsl.expected.msl b/test/builtins/gen/step/334303.wgsl.expected.msl
index e6d7c41..2df2377 100644
--- a/test/builtins/gen/step/334303.wgsl.expected.msl
+++ b/test/builtins/gen/step/334303.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void step_334303() {
   float3 res = step(float3(), float3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   step_334303();
   return float4();
diff --git a/test/builtins/gen/step/e2b337.wgsl.expected.msl b/test/builtins/gen/step/e2b337.wgsl.expected.msl
index 8463933..7babb88 100644
--- a/test/builtins/gen/step/e2b337.wgsl.expected.msl
+++ b/test/builtins/gen/step/e2b337.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void step_e2b337() {
   float4 res = step(float4(), float4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   step_e2b337();
   return float4();
diff --git a/test/builtins/gen/tan/244e2a.wgsl.expected.msl b/test/builtins/gen/tan/244e2a.wgsl.expected.msl
index 962c601..64ec9bc 100644
--- a/test/builtins/gen/tan/244e2a.wgsl.expected.msl
+++ b/test/builtins/gen/tan/244e2a.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void tan_244e2a() {
   float4 res = tan(float4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   tan_244e2a();
   return float4();
diff --git a/test/builtins/gen/tan/2f030e.wgsl.expected.msl b/test/builtins/gen/tan/2f030e.wgsl.expected.msl
index 7a69f2c..63bec45 100644
--- a/test/builtins/gen/tan/2f030e.wgsl.expected.msl
+++ b/test/builtins/gen/tan/2f030e.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void tan_2f030e() {
   float res = tan(1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   tan_2f030e();
   return float4();
diff --git a/test/builtins/gen/tan/7ea104.wgsl.expected.msl b/test/builtins/gen/tan/7ea104.wgsl.expected.msl
index 45a9ab3..3be2db3 100644
--- a/test/builtins/gen/tan/7ea104.wgsl.expected.msl
+++ b/test/builtins/gen/tan/7ea104.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void tan_7ea104() {
   float3 res = tan(float3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   tan_7ea104();
   return float4();
diff --git a/test/builtins/gen/tan/8ce3e9.wgsl.expected.msl b/test/builtins/gen/tan/8ce3e9.wgsl.expected.msl
index bdb9257..92e515c 100644
--- a/test/builtins/gen/tan/8ce3e9.wgsl.expected.msl
+++ b/test/builtins/gen/tan/8ce3e9.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void tan_8ce3e9() {
   float2 res = tan(float2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   tan_8ce3e9();
   return float4();
diff --git a/test/builtins/gen/tanh/5663c5.wgsl.expected.msl b/test/builtins/gen/tanh/5663c5.wgsl.expected.msl
index 664ac5b..4272f82 100644
--- a/test/builtins/gen/tanh/5663c5.wgsl.expected.msl
+++ b/test/builtins/gen/tanh/5663c5.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void tanh_5663c5() {
   float4 res = tanh(float4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   tanh_5663c5();
   return float4();
diff --git a/test/builtins/gen/tanh/5724b3.wgsl.expected.msl b/test/builtins/gen/tanh/5724b3.wgsl.expected.msl
index 9c87d67..bee133b 100644
--- a/test/builtins/gen/tanh/5724b3.wgsl.expected.msl
+++ b/test/builtins/gen/tanh/5724b3.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void tanh_5724b3() {
   float2 res = tanh(float2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   tanh_5724b3();
   return float4();
diff --git a/test/builtins/gen/tanh/9f9fb9.wgsl.expected.msl b/test/builtins/gen/tanh/9f9fb9.wgsl.expected.msl
index 7a3fb85..47a61a0 100644
--- a/test/builtins/gen/tanh/9f9fb9.wgsl.expected.msl
+++ b/test/builtins/gen/tanh/9f9fb9.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void tanh_9f9fb9() {
   float3 res = tanh(float3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   tanh_9f9fb9();
   return float4();
diff --git a/test/builtins/gen/tanh/c15fdb.wgsl.expected.msl b/test/builtins/gen/tanh/c15fdb.wgsl.expected.msl
index 9b20d17..b9400e8 100644
--- a/test/builtins/gen/tanh/c15fdb.wgsl.expected.msl
+++ b/test/builtins/gen/tanh/c15fdb.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void tanh_c15fdb() {
   float res = tanh(1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   tanh_c15fdb();
   return float4();
diff --git a/test/builtins/gen/textureDimensions/002b2a.wgsl.expected.msl b/test/builtins/gen/textureDimensions/002b2a.wgsl.expected.msl
index 97cec1c..7e980a0 100644
--- a/test/builtins/gen/textureDimensions/002b2a.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/002b2a.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_002b2a(texture1d<float, access::sample> tint_symbol_1) {
   int res = int(tint_symbol_1.get_width(0));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture1d<float, access::sample> tint_symbol_2) {
   textureDimensions_002b2a(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/012b82.wgsl.expected.msl b/test/builtins/gen/textureDimensions/012b82.wgsl.expected.msl
index 5a6992c..2eedc2f 100644
--- a/test/builtins/gen/textureDimensions/012b82.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/012b82.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_012b82(texture2d_array<int, access::write> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
   textureDimensions_012b82(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/08753d.wgsl.expected.msl b/test/builtins/gen/textureDimensions/08753d.wgsl.expected.msl
index 92557a7..b17a320 100644
--- a/test/builtins/gen/textureDimensions/08753d.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/08753d.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_08753d(texture1d<int, access::write> tint_symbol_1) {
   int res = int(tint_symbol_1.get_width(0));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture1d<int, access::write> tint_symbol_2) {
   textureDimensions_08753d(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/0c4772.wgsl.expected.msl b/test/builtins/gen/textureDimensions/0c4772.wgsl.expected.msl
index 640ff51..f44d72e 100644
--- a/test/builtins/gen/textureDimensions/0c4772.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/0c4772.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_0c4772(texture3d<float, access::write> tint_symbol_1) {
   int3 res = int3(tint_symbol_1.get_width(), tint_symbol_1.get_height(), tint_symbol_1.get_depth());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture3d<float, access::write> tint_symbol_2) {
   textureDimensions_0c4772(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/0cce40.wgsl.expected.msl b/test/builtins/gen/textureDimensions/0cce40.wgsl.expected.msl
index 6718be0..c2d4cce 100644
--- a/test/builtins/gen/textureDimensions/0cce40.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/0cce40.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_0cce40(texture1d<int, access::write> tint_symbol_1) {
   int res = int(tint_symbol_1.get_width(0));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture1d<int, access::write> tint_symbol_2) {
   textureDimensions_0cce40(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/0cf2ff.wgsl.expected.msl b/test/builtins/gen/textureDimensions/0cf2ff.wgsl.expected.msl
index 676d1ed..f1bd381 100644
--- a/test/builtins/gen/textureDimensions/0cf2ff.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/0cf2ff.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_0cf2ff(texture2d<uint, access::write> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<uint, access::write> tint_symbol_2) {
   textureDimensions_0cf2ff(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/0d8b7e.wgsl.expected.msl b/test/builtins/gen/textureDimensions/0d8b7e.wgsl.expected.msl
index 365e34e..3470bd7 100644
--- a/test/builtins/gen/textureDimensions/0d8b7e.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/0d8b7e.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_0d8b7e(texture2d_array<uint, access::write> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
   textureDimensions_0d8b7e(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/0e32ee.wgsl.expected.msl b/test/builtins/gen/textureDimensions/0e32ee.wgsl.expected.msl
index ab2c649..1b58235 100644
--- a/test/builtins/gen/textureDimensions/0e32ee.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/0e32ee.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_0e32ee(texture3d<uint, access::write> tint_symbol_1) {
   int3 res = int3(tint_symbol_1.get_width(), tint_symbol_1.get_height(), tint_symbol_1.get_depth());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture3d<uint, access::write> tint_symbol_2) {
   textureDimensions_0e32ee(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/0f3c50.wgsl.expected.msl b/test/builtins/gen/textureDimensions/0f3c50.wgsl.expected.msl
index 20a7f39..86e7f0d 100644
--- a/test/builtins/gen/textureDimensions/0f3c50.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/0f3c50.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_0f3c50(texture2d_array<int, access::sample> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<int, access::sample> tint_symbol_2) {
   textureDimensions_0f3c50(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/1191a5.wgsl.expected.msl b/test/builtins/gen/textureDimensions/1191a5.wgsl.expected.msl
index f6268f2..931111f 100644
--- a/test/builtins/gen/textureDimensions/1191a5.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/1191a5.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_1191a5(texture2d<uint, access::sample> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<uint, access::sample> tint_symbol_2) {
   textureDimensions_1191a5(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/12c9bb.wgsl.expected.msl b/test/builtins/gen/textureDimensions/12c9bb.wgsl.expected.msl
index b3f3f59..d70293b 100644
--- a/test/builtins/gen/textureDimensions/12c9bb.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/12c9bb.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_12c9bb(depth2d<float, access::sample> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(0), tint_symbol_1.get_height(0));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(depth2d<float, access::sample> tint_symbol_2) {
   textureDimensions_12c9bb(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/147998.wgsl.expected.msl b/test/builtins/gen/textureDimensions/147998.wgsl.expected.msl
index c350f80..442985e 100644
--- a/test/builtins/gen/textureDimensions/147998.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/147998.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_147998(texture2d<float, access::write> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<float, access::write> tint_symbol_2) {
   textureDimensions_147998(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/16036c.wgsl.expected.msl b/test/builtins/gen/textureDimensions/16036c.wgsl.expected.msl
index ed7ed8d..f8656f6 100644
--- a/test/builtins/gen/textureDimensions/16036c.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/16036c.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_16036c(texture2d_array<int, access::write> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
   textureDimensions_16036c(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/1b71f0.wgsl.expected.msl b/test/builtins/gen/textureDimensions/1b71f0.wgsl.expected.msl
index 3a0980d..54e8e12 100644
--- a/test/builtins/gen/textureDimensions/1b71f0.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/1b71f0.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_1b71f0(texture3d<int, access::write> tint_symbol_1) {
   int3 res = int3(tint_symbol_1.get_width(), tint_symbol_1.get_height(), tint_symbol_1.get_depth());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture3d<int, access::write> tint_symbol_2) {
   textureDimensions_1b71f0(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/1d6c26.wgsl.expected.msl b/test/builtins/gen/textureDimensions/1d6c26.wgsl.expected.msl
index 6336706..ba2b629 100644
--- a/test/builtins/gen/textureDimensions/1d6c26.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/1d6c26.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_1d6c26(texture2d_array<float, access::write> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
   textureDimensions_1d6c26(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/1e9e39.wgsl.expected.msl b/test/builtins/gen/textureDimensions/1e9e39.wgsl.expected.msl
index 37bf3f3..c6219c2 100644
--- a/test/builtins/gen/textureDimensions/1e9e39.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/1e9e39.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_1e9e39(texture1d<float, access::write> tint_symbol_1) {
   int res = int(tint_symbol_1.get_width(0));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture1d<float, access::write> tint_symbol_2) {
   textureDimensions_1e9e39(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/1f20c5.wgsl.expected.msl b/test/builtins/gen/textureDimensions/1f20c5.wgsl.expected.msl
index c3196ad..8d7cbc4 100644
--- a/test/builtins/gen/textureDimensions/1f20c5.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/1f20c5.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_1f20c5(texture2d_array<uint, access::sample> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<uint, access::sample> tint_symbol_2) {
   textureDimensions_1f20c5(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/214dd4.wgsl.expected.msl b/test/builtins/gen/textureDimensions/214dd4.wgsl.expected.msl
index 36ddac3..dcda00a 100644
--- a/test/builtins/gen/textureDimensions/214dd4.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/214dd4.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_214dd4(texture3d<int, access::write> tint_symbol_1) {
   int3 res = int3(tint_symbol_1.get_width(), tint_symbol_1.get_height(), tint_symbol_1.get_depth());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture3d<int, access::write> tint_symbol_2) {
   textureDimensions_214dd4(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/221f22.wgsl.expected.msl b/test/builtins/gen/textureDimensions/221f22.wgsl.expected.msl
index 4007f21..b482e8d 100644
--- a/test/builtins/gen/textureDimensions/221f22.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/221f22.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_221f22(texturecube_array<int, access::sample> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(0), tint_symbol_1.get_height(0));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texturecube_array<int, access::sample> tint_symbol_2) {
   textureDimensions_221f22(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/267788.wgsl.expected.msl b/test/builtins/gen/textureDimensions/267788.wgsl.expected.msl
index 0f21f84..3590ad7 100644
--- a/test/builtins/gen/textureDimensions/267788.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/267788.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_267788(texture2d_array<uint, access::sample> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(0), tint_symbol_1.get_height(0));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<uint, access::sample> tint_symbol_2) {
   textureDimensions_267788(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/26bdfa.wgsl.expected.msl b/test/builtins/gen/textureDimensions/26bdfa.wgsl.expected.msl
index d65df23..862a81e 100644
--- a/test/builtins/gen/textureDimensions/26bdfa.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/26bdfa.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_26bdfa(texture3d<float, access::sample> tint_symbol_1) {
   int3 res = int3(tint_symbol_1.get_width(0), tint_symbol_1.get_height(0), tint_symbol_1.get_depth(0));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture3d<float, access::sample> tint_symbol_2) {
   textureDimensions_26bdfa(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/26ef6c.wgsl.expected.msl b/test/builtins/gen/textureDimensions/26ef6c.wgsl.expected.msl
index 692a2be..14cfc8c 100644
--- a/test/builtins/gen/textureDimensions/26ef6c.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/26ef6c.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_26ef6c(texture2d_array<uint, access::write> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
   textureDimensions_26ef6c(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/2ad087.wgsl.expected.msl b/test/builtins/gen/textureDimensions/2ad087.wgsl.expected.msl
index 48b104f..848bc3b 100644
--- a/test/builtins/gen/textureDimensions/2ad087.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/2ad087.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_2ad087(texture2d<int, access::write> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<int, access::write> tint_symbol_2) {
   textureDimensions_2ad087(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/2efa05.wgsl.expected.msl b/test/builtins/gen/textureDimensions/2efa05.wgsl.expected.msl
index 370a66e..85bf657 100644
--- a/test/builtins/gen/textureDimensions/2efa05.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/2efa05.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_2efa05(texture3d<uint, access::sample> tint_symbol_1) {
   int3 res = int3(tint_symbol_1.get_width(0), tint_symbol_1.get_height(0), tint_symbol_1.get_depth(0));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture3d<uint, access::sample> tint_symbol_2) {
   textureDimensions_2efa05(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/2f289f.wgsl.expected.msl b/test/builtins/gen/textureDimensions/2f289f.wgsl.expected.msl
index b1daa7e..cd44b36 100644
--- a/test/builtins/gen/textureDimensions/2f289f.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/2f289f.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_2f289f(texture3d<int, access::write> tint_symbol_1) {
   int3 res = int3(tint_symbol_1.get_width(), tint_symbol_1.get_height(), tint_symbol_1.get_depth());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture3d<int, access::write> tint_symbol_2) {
   textureDimensions_2f289f(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/2fe1cc.wgsl.expected.msl b/test/builtins/gen/textureDimensions/2fe1cc.wgsl.expected.msl
index 72a77bc..28214cb 100644
--- a/test/builtins/gen/textureDimensions/2fe1cc.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/2fe1cc.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_2fe1cc(texture2d<float, access::sample> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(0), tint_symbol_1.get_height(0));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<float, access::sample> tint_symbol_2) {
   textureDimensions_2fe1cc(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/318ecc.wgsl.expected.msl b/test/builtins/gen/textureDimensions/318ecc.wgsl.expected.msl
index 577e060..d98992e 100644
--- a/test/builtins/gen/textureDimensions/318ecc.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/318ecc.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_318ecc(texture1d<uint, access::write> tint_symbol_1) {
   int res = int(tint_symbol_1.get_width(0));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture1d<uint, access::write> tint_symbol_2) {
   textureDimensions_318ecc(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/340d06.wgsl.expected.msl b/test/builtins/gen/textureDimensions/340d06.wgsl.expected.msl
index 605424a..bb2348a 100644
--- a/test/builtins/gen/textureDimensions/340d06.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/340d06.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_340d06(texture3d<uint, access::write> tint_symbol_1) {
   int3 res = int3(tint_symbol_1.get_width(), tint_symbol_1.get_height(), tint_symbol_1.get_depth());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture3d<uint, access::write> tint_symbol_2) {
   textureDimensions_340d06(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/398e30.wgsl.expected.msl b/test/builtins/gen/textureDimensions/398e30.wgsl.expected.msl
index 65ea6c2..a2bff50 100644
--- a/test/builtins/gen/textureDimensions/398e30.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/398e30.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_398e30(texture2d_array<uint, access::write> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
   textureDimensions_398e30(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/3a94ea.wgsl.expected.msl b/test/builtins/gen/textureDimensions/3a94ea.wgsl.expected.msl
index 964cf06..5121035 100644
--- a/test/builtins/gen/textureDimensions/3a94ea.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/3a94ea.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_3a94ea(texture2d<uint, access::write> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<uint, access::write> tint_symbol_2) {
   textureDimensions_3a94ea(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/3aca08.wgsl.expected.msl b/test/builtins/gen/textureDimensions/3aca08.wgsl.expected.msl
index 186865c..f5e4b1b 100644
--- a/test/builtins/gen/textureDimensions/3aca08.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/3aca08.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_3aca08(texture1d<float, access::write> tint_symbol_1) {
   int res = int(tint_symbol_1.get_width(0));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture1d<float, access::write> tint_symbol_2) {
   textureDimensions_3aca08(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/3c5ad8.wgsl.expected.msl b/test/builtins/gen/textureDimensions/3c5ad8.wgsl.expected.msl
index 55bc955..1366cdf 100644
--- a/test/builtins/gen/textureDimensions/3c5ad8.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/3c5ad8.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_3c5ad8(texture2d<int, access::write> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<int, access::write> tint_symbol_2) {
   textureDimensions_3c5ad8(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/4152a6.wgsl.expected.msl b/test/builtins/gen/textureDimensions/4152a6.wgsl.expected.msl
index 21c7da3..afa8c0f 100644
--- a/test/builtins/gen/textureDimensions/4152a6.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/4152a6.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_4152a6(texturecube_array<uint, access::sample> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texturecube_array<uint, access::sample> tint_symbol_2) {
   textureDimensions_4152a6(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/423f99.wgsl.expected.msl b/test/builtins/gen/textureDimensions/423f99.wgsl.expected.msl
index dc27cae..f6d8c32 100644
--- a/test/builtins/gen/textureDimensions/423f99.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/423f99.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_423f99(texture1d<int, access::sample> tint_symbol_1) {
   int res = int(tint_symbol_1.get_width(0));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture1d<int, access::sample> tint_symbol_2) {
   textureDimensions_423f99(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/4267ee.wgsl.expected.msl b/test/builtins/gen/textureDimensions/4267ee.wgsl.expected.msl
index a172cf5..e6579cd 100644
--- a/test/builtins/gen/textureDimensions/4267ee.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/4267ee.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_4267ee(texture2d<float, access::write> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<float, access::write> tint_symbol_2) {
   textureDimensions_4267ee(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/42d4e6.wgsl.expected.msl b/test/builtins/gen/textureDimensions/42d4e6.wgsl.expected.msl
index 3156bbb..5d05c3e 100644
--- a/test/builtins/gen/textureDimensions/42d4e6.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/42d4e6.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_42d4e6(texture1d<float, access::write> tint_symbol_1) {
   int res = int(tint_symbol_1.get_width(0));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture1d<float, access::write> tint_symbol_2) {
   textureDimensions_42d4e6(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/48cb89.wgsl.expected.msl b/test/builtins/gen/textureDimensions/48cb89.wgsl.expected.msl
index dc35032..14a1875 100644
--- a/test/builtins/gen/textureDimensions/48cb89.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/48cb89.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_48cb89(texture2d<float, access::write> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<float, access::write> tint_symbol_2) {
   textureDimensions_48cb89(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/49d274.wgsl.expected.msl b/test/builtins/gen/textureDimensions/49d274.wgsl.expected.msl
index 096c898..69112a1 100644
--- a/test/builtins/gen/textureDimensions/49d274.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/49d274.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_49d274(texture2d_array<int, access::write> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
   textureDimensions_49d274(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/4df9a8.wgsl.expected.msl b/test/builtins/gen/textureDimensions/4df9a8.wgsl.expected.msl
index 2f350d5..36c25c4 100644
--- a/test/builtins/gen/textureDimensions/4df9a8.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/4df9a8.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_4df9a8(texture1d<uint, access::write> tint_symbol_1) {
   int res = int(tint_symbol_1.get_width(0));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture1d<uint, access::write> tint_symbol_2) {
   textureDimensions_4df9a8(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/50a9ee.wgsl.expected.msl b/test/builtins/gen/textureDimensions/50a9ee.wgsl.expected.msl
index 6d921d1..0924964 100644
--- a/test/builtins/gen/textureDimensions/50a9ee.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/50a9ee.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_50a9ee(texturecube_array<float, access::sample> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(0), tint_symbol_1.get_height(0));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texturecube_array<float, access::sample> tint_symbol_2) {
   textureDimensions_50a9ee(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/52045c.wgsl.expected.msl b/test/builtins/gen/textureDimensions/52045c.wgsl.expected.msl
index 0d3cb41..81fc60c 100644
--- a/test/builtins/gen/textureDimensions/52045c.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/52045c.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_52045c(texture1d<int, access::sample> tint_symbol_1) {
   int res = int(tint_symbol_1.get_width(0));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture1d<int, access::sample> tint_symbol_2) {
   textureDimensions_52045c(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/55b23e.wgsl.expected.msl b/test/builtins/gen/textureDimensions/55b23e.wgsl.expected.msl
index 24fb6e8..40ee9ec 100644
--- a/test/builtins/gen/textureDimensions/55b23e.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/55b23e.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_55b23e(texture1d<float, access::write> tint_symbol_1) {
   int res = int(tint_symbol_1.get_width(0));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture1d<float, access::write> tint_symbol_2) {
   textureDimensions_55b23e(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/579629.wgsl.expected.msl b/test/builtins/gen/textureDimensions/579629.wgsl.expected.msl
index 2cfb158..f1af528 100644
--- a/test/builtins/gen/textureDimensions/579629.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/579629.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_579629(texture2d_ms<uint, access::read> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_ms<uint, access::read> tint_symbol_2) {
   textureDimensions_579629(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/57da0b.wgsl.expected.msl b/test/builtins/gen/textureDimensions/57da0b.wgsl.expected.msl
index 44429f3..c71837f 100644
--- a/test/builtins/gen/textureDimensions/57da0b.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/57da0b.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_57da0b(texture1d<uint, access::write> tint_symbol_1) {
   int res = int(tint_symbol_1.get_width(0));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture1d<uint, access::write> tint_symbol_2) {
   textureDimensions_57da0b(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/57e28f.wgsl.expected.msl b/test/builtins/gen/textureDimensions/57e28f.wgsl.expected.msl
index b8f10ea..fb1f889 100644
--- a/test/builtins/gen/textureDimensions/57e28f.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/57e28f.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_57e28f(depthcube<float, access::sample> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(depthcube<float, access::sample> tint_symbol_2) {
   textureDimensions_57e28f(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/58a515.wgsl.expected.msl b/test/builtins/gen/textureDimensions/58a515.wgsl.expected.msl
index a1985a9..2cc6f1a 100644
--- a/test/builtins/gen/textureDimensions/58a515.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/58a515.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_58a515(texture2d_array<float, access::write> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
   textureDimensions_58a515(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/5985f3.wgsl.expected.msl b/test/builtins/gen/textureDimensions/5985f3.wgsl.expected.msl
index d02b064..9d911c8 100644
--- a/test/builtins/gen/textureDimensions/5985f3.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/5985f3.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_5985f3(texture2d_array<int, access::write> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
   textureDimensions_5985f3(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/5caa5e.wgsl.expected.msl b/test/builtins/gen/textureDimensions/5caa5e.wgsl.expected.msl
index 9816f22..a23d4ab 100644
--- a/test/builtins/gen/textureDimensions/5caa5e.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/5caa5e.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_5caa5e(texture1d<uint, access::write> tint_symbol_1) {
   int res = int(tint_symbol_1.get_width(0));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture1d<uint, access::write> tint_symbol_2) {
   textureDimensions_5caa5e(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/5e295d.wgsl.expected.msl b/test/builtins/gen/textureDimensions/5e295d.wgsl.expected.msl
index d871096..4da0c3b 100644
--- a/test/builtins/gen/textureDimensions/5e295d.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/5e295d.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_5e295d(texture2d_array<uint, access::write> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
   textureDimensions_5e295d(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/60bf54.wgsl.expected.msl b/test/builtins/gen/textureDimensions/60bf54.wgsl.expected.msl
index 3adf17c..1f35ec2 100644
--- a/test/builtins/gen/textureDimensions/60bf54.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/60bf54.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_60bf54(texture3d<int, access::write> tint_symbol_1) {
   int3 res = int3(tint_symbol_1.get_width(), tint_symbol_1.get_height(), tint_symbol_1.get_depth());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture3d<int, access::write> tint_symbol_2) {
   textureDimensions_60bf54(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/63f3cf.wgsl.expected.msl b/test/builtins/gen/textureDimensions/63f3cf.wgsl.expected.msl
index 7beb7d2..44388bc 100644
--- a/test/builtins/gen/textureDimensions/63f3cf.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/63f3cf.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_63f3cf(texture3d<float, access::write> tint_symbol_1) {
   int3 res = int3(tint_symbol_1.get_width(), tint_symbol_1.get_height(), tint_symbol_1.get_depth());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture3d<float, access::write> tint_symbol_2) {
   textureDimensions_63f3cf(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/68105c.wgsl.expected.msl b/test/builtins/gen/textureDimensions/68105c.wgsl.expected.msl
index 5790d25..ebafaa5 100644
--- a/test/builtins/gen/textureDimensions/68105c.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/68105c.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_68105c(texture2d<uint, access::write> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<uint, access::write> tint_symbol_2) {
   textureDimensions_68105c(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/686ef2.wgsl.expected.msl b/test/builtins/gen/textureDimensions/686ef2.wgsl.expected.msl
index 21d8260..6facf32 100644
--- a/test/builtins/gen/textureDimensions/686ef2.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/686ef2.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_686ef2(texturecube<int, access::sample> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(0), tint_symbol_1.get_height(0));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texturecube<int, access::sample> tint_symbol_2) {
   textureDimensions_686ef2(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/6adac6.wgsl.expected.msl b/test/builtins/gen/textureDimensions/6adac6.wgsl.expected.msl
index 375da25..de1f67b 100644
--- a/test/builtins/gen/textureDimensions/6adac6.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/6adac6.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_6adac6(texture1d<int, access::write> tint_symbol_1) {
   int res = int(tint_symbol_1.get_width(0));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture1d<int, access::write> tint_symbol_2) {
   textureDimensions_6adac6(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/6ec1b4.wgsl.expected.msl b/test/builtins/gen/textureDimensions/6ec1b4.wgsl.expected.msl
index d1f686e..379a639 100644
--- a/test/builtins/gen/textureDimensions/6ec1b4.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/6ec1b4.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_6ec1b4(texture3d<uint, access::sample> tint_symbol_1) {
   int3 res = int3(tint_symbol_1.get_width(), tint_symbol_1.get_height(), tint_symbol_1.get_depth());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture3d<uint, access::sample> tint_symbol_2) {
   textureDimensions_6ec1b4(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/6f0d79.wgsl.expected.msl b/test/builtins/gen/textureDimensions/6f0d79.wgsl.expected.msl
index d784789..0de9fea 100644
--- a/test/builtins/gen/textureDimensions/6f0d79.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/6f0d79.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_6f0d79(texture2d_array<float, access::write> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
   textureDimensions_6f0d79(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/702c53.wgsl.expected.msl b/test/builtins/gen/textureDimensions/702c53.wgsl.expected.msl
index 9a0bb54..3dc0263 100644
--- a/test/builtins/gen/textureDimensions/702c53.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/702c53.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_702c53(texture2d<float, access::write> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<float, access::write> tint_symbol_2) {
   textureDimensions_702c53(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/72e5d6.wgsl.expected.msl b/test/builtins/gen/textureDimensions/72e5d6.wgsl.expected.msl
index cab3ad7..5e835e3 100644
--- a/test/builtins/gen/textureDimensions/72e5d6.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/72e5d6.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_72e5d6(depth2d_array<float, access::sample> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(0), tint_symbol_1.get_height(0));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(depth2d_array<float, access::sample> tint_symbol_2) {
   textureDimensions_72e5d6(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/79df87.wgsl.expected.msl b/test/builtins/gen/textureDimensions/79df87.wgsl.expected.msl
index d021683..01adb4d 100644
--- a/test/builtins/gen/textureDimensions/79df87.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/79df87.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_79df87(texture1d<uint, access::sample> tint_symbol_1) {
   int res = int(tint_symbol_1.get_width(0));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture1d<uint, access::sample> tint_symbol_2) {
   textureDimensions_79df87(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/7bf826.wgsl.expected.msl b/test/builtins/gen/textureDimensions/7bf826.wgsl.expected.msl
index fdd6201..4964ca0 100644
--- a/test/builtins/gen/textureDimensions/7bf826.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/7bf826.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_7bf826(depth2d_array<float, access::sample> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(depth2d_array<float, access::sample> tint_symbol_2) {
   textureDimensions_7bf826(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/7f5c2e.wgsl.expected.msl b/test/builtins/gen/textureDimensions/7f5c2e.wgsl.expected.msl
index ec78cea..6cae604 100644
--- a/test/builtins/gen/textureDimensions/7f5c2e.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/7f5c2e.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_7f5c2e(texture2d<int, access::write> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<int, access::write> tint_symbol_2) {
   textureDimensions_7f5c2e(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/8028f3.wgsl.expected.msl b/test/builtins/gen/textureDimensions/8028f3.wgsl.expected.msl
index ee91a57..50d4cee 100644
--- a/test/builtins/gen/textureDimensions/8028f3.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/8028f3.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_8028f3(texture3d<float, access::write> tint_symbol_1) {
   int3 res = int3(tint_symbol_1.get_width(), tint_symbol_1.get_height(), tint_symbol_1.get_depth());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture3d<float, access::write> tint_symbol_2) {
   textureDimensions_8028f3(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/811679.wgsl.expected.msl b/test/builtins/gen/textureDimensions/811679.wgsl.expected.msl
index 3f92b25..98b2a95 100644
--- a/test/builtins/gen/textureDimensions/811679.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/811679.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_811679(texture3d<uint, access::write> tint_symbol_1) {
   int3 res = int3(tint_symbol_1.get_width(), tint_symbol_1.get_height(), tint_symbol_1.get_depth());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture3d<uint, access::write> tint_symbol_2) {
   textureDimensions_811679(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/820596.wgsl.expected.msl b/test/builtins/gen/textureDimensions/820596.wgsl.expected.msl
index bcea742..303771c 100644
--- a/test/builtins/gen/textureDimensions/820596.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/820596.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_820596(texture3d<uint, access::write> tint_symbol_1) {
   int3 res = int3(tint_symbol_1.get_width(), tint_symbol_1.get_height(), tint_symbol_1.get_depth());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture3d<uint, access::write> tint_symbol_2) {
   textureDimensions_820596(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/83ee5a.wgsl.expected.msl b/test/builtins/gen/textureDimensions/83ee5a.wgsl.expected.msl
index ae657f3..f92d24a 100644
--- a/test/builtins/gen/textureDimensions/83ee5a.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/83ee5a.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_83ee5a(texture2d<int, access::write> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<int, access::write> tint_symbol_2) {
   textureDimensions_83ee5a(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/85d556.wgsl.expected.msl b/test/builtins/gen/textureDimensions/85d556.wgsl.expected.msl
index 6db7094..05c997d 100644
--- a/test/builtins/gen/textureDimensions/85d556.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/85d556.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_85d556(texture2d_array<float, access::sample> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(0), tint_symbol_1.get_height(0));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<float, access::sample> tint_symbol_2) {
   textureDimensions_85d556(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/88ad17.wgsl.expected.msl b/test/builtins/gen/textureDimensions/88ad17.wgsl.expected.msl
index 3a51779..cbd3f88 100644
--- a/test/builtins/gen/textureDimensions/88ad17.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/88ad17.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_88ad17(texturecube<uint, access::sample> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(0), tint_symbol_1.get_height(0));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texturecube<uint, access::sample> tint_symbol_2) {
   textureDimensions_88ad17(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/8aa4c4.wgsl.expected.msl b/test/builtins/gen/textureDimensions/8aa4c4.wgsl.expected.msl
index 1fc97aa..4272060 100644
--- a/test/builtins/gen/textureDimensions/8aa4c4.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/8aa4c4.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_8aa4c4(texture3d<float, access::sample> tint_symbol_1) {
   int3 res = int3(tint_symbol_1.get_width(), tint_symbol_1.get_height(), tint_symbol_1.get_depth());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture3d<float, access::sample> tint_symbol_2) {
   textureDimensions_8aa4c4(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/8deb5e.wgsl.expected.msl b/test/builtins/gen/textureDimensions/8deb5e.wgsl.expected.msl
index 863eb13..1b165df 100644
--- a/test/builtins/gen/textureDimensions/8deb5e.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/8deb5e.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_8deb5e(texture3d<int, access::sample> tint_symbol_1) {
   int3 res = int3(tint_symbol_1.get_width(), tint_symbol_1.get_height(), tint_symbol_1.get_depth());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture3d<int, access::sample> tint_symbol_2) {
   textureDimensions_8deb5e(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/8f20bf.wgsl.expected.msl b/test/builtins/gen/textureDimensions/8f20bf.wgsl.expected.msl
index edc42af..fe8a216 100644
--- a/test/builtins/gen/textureDimensions/8f20bf.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/8f20bf.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_8f20bf(texturecube_array<float, access::sample> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texturecube_array<float, access::sample> tint_symbol_2) {
   textureDimensions_8f20bf(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/8fca0f.wgsl.expected.msl b/test/builtins/gen/textureDimensions/8fca0f.wgsl.expected.msl
index 8ba811d..b80ae46 100644
--- a/test/builtins/gen/textureDimensions/8fca0f.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/8fca0f.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_8fca0f(texture3d<float, access::write> tint_symbol_1) {
   int3 res = int3(tint_symbol_1.get_width(), tint_symbol_1.get_height(), tint_symbol_1.get_depth());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture3d<float, access::write> tint_symbol_2) {
   textureDimensions_8fca0f(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/90340b.wgsl.expected.msl b/test/builtins/gen/textureDimensions/90340b.wgsl.expected.msl
index 958aad9..0fa625c 100644
--- a/test/builtins/gen/textureDimensions/90340b.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/90340b.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_90340b(depthcube_array<float, access::sample> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(depthcube_array<float, access::sample> tint_symbol_2) {
   textureDimensions_90340b(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/9042ab.wgsl.expected.msl b/test/builtins/gen/textureDimensions/9042ab.wgsl.expected.msl
index 4674efe..1e47848 100644
--- a/test/builtins/gen/textureDimensions/9042ab.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/9042ab.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_9042ab(texture2d_array<uint, access::write> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
   textureDimensions_9042ab(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/9393b0.wgsl.expected.msl b/test/builtins/gen/textureDimensions/9393b0.wgsl.expected.msl
index c6a5a89..9f2122c 100644
--- a/test/builtins/gen/textureDimensions/9393b0.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/9393b0.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_9393b0(depthcube<float, access::sample> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(0), tint_symbol_1.get_height(0));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(depthcube<float, access::sample> tint_symbol_2) {
   textureDimensions_9393b0(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/939fdb.wgsl.expected.msl b/test/builtins/gen/textureDimensions/939fdb.wgsl.expected.msl
index 75a8192..e825ea3 100644
--- a/test/builtins/gen/textureDimensions/939fdb.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/939fdb.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_939fdb(depth2d<float, access::sample> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(depth2d<float, access::sample> tint_symbol_2) {
   textureDimensions_939fdb(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/962dcd.wgsl.expected.msl b/test/builtins/gen/textureDimensions/962dcd.wgsl.expected.msl
index 8ff752c..8f66f9d 100644
--- a/test/builtins/gen/textureDimensions/962dcd.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/962dcd.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_962dcd(texturecube<int, access::sample> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texturecube<int, access::sample> tint_symbol_2) {
   textureDimensions_962dcd(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/9abfe5.wgsl.expected.msl b/test/builtins/gen/textureDimensions/9abfe5.wgsl.expected.msl
index 1d9e4af..4b2bcdd 100644
--- a/test/builtins/gen/textureDimensions/9abfe5.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/9abfe5.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_9abfe5(texture2d_array<float, access::write> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
   textureDimensions_9abfe5(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/9c9c57.wgsl.expected.msl b/test/builtins/gen/textureDimensions/9c9c57.wgsl.expected.msl
index 6b6c20b..e457997 100644
--- a/test/builtins/gen/textureDimensions/9c9c57.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/9c9c57.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_9c9c57(texture2d_array<int, access::sample> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(0), tint_symbol_1.get_height(0));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<int, access::sample> tint_symbol_2) {
   textureDimensions_9c9c57(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/9da9e2.wgsl.expected.msl b/test/builtins/gen/textureDimensions/9da9e2.wgsl.expected.msl
index e114675..98178fc 100644
--- a/test/builtins/gen/textureDimensions/9da9e2.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/9da9e2.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_9da9e2(texture1d<int, access::write> tint_symbol_1) {
   int res = int(tint_symbol_1.get_width(0));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture1d<int, access::write> tint_symbol_2) {
   textureDimensions_9da9e2(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/9eb8d8.wgsl.expected.msl b/test/builtins/gen/textureDimensions/9eb8d8.wgsl.expected.msl
index ef8e102..8d1ec05 100644
--- a/test/builtins/gen/textureDimensions/9eb8d8.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/9eb8d8.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_9eb8d8(texture2d<uint, access::write> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<uint, access::write> tint_symbol_2) {
   textureDimensions_9eb8d8(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/9f8e46.wgsl.expected.msl b/test/builtins/gen/textureDimensions/9f8e46.wgsl.expected.msl
index a823aa4..23edfc2 100644
--- a/test/builtins/gen/textureDimensions/9f8e46.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/9f8e46.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_9f8e46(texture2d<float, access::sample> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<float, access::sample> tint_symbol_2) {
   textureDimensions_9f8e46(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/a01845.wgsl.expected.msl b/test/builtins/gen/textureDimensions/a01845.wgsl.expected.msl
index 6fe18da..02fc571 100644
--- a/test/builtins/gen/textureDimensions/a01845.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/a01845.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_a01845(depthcube_array<float, access::sample> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(0), tint_symbol_1.get_height(0));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(depthcube_array<float, access::sample> tint_symbol_2) {
   textureDimensions_a01845(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/a7d565.wgsl.expected.msl b/test/builtins/gen/textureDimensions/a7d565.wgsl.expected.msl
index e06c9c9..22d4338 100644
--- a/test/builtins/gen/textureDimensions/a7d565.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/a7d565.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_a7d565(texture1d<uint, access::sample> tint_symbol_1) {
   int res = int(tint_symbol_1.get_width(0));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture1d<uint, access::sample> tint_symbol_2) {
   textureDimensions_a7d565(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/a863f2.wgsl.expected.msl b/test/builtins/gen/textureDimensions/a863f2.wgsl.expected.msl
index 152cdc5..3bbebf3 100644
--- a/test/builtins/gen/textureDimensions/a863f2.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/a863f2.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_a863f2(texture1d<float, access::write> tint_symbol_1) {
   int res = int(tint_symbol_1.get_width(0));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture1d<float, access::write> tint_symbol_2) {
   textureDimensions_a863f2(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/a9c9c1.wgsl.expected.msl b/test/builtins/gen/textureDimensions/a9c9c1.wgsl.expected.msl
index 5d5c01c..539d007 100644
--- a/test/builtins/gen/textureDimensions/a9c9c1.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/a9c9c1.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_a9c9c1(texturecube<float, access::sample> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(0), tint_symbol_1.get_height(0));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texturecube<float, access::sample> tint_symbol_2) {
   textureDimensions_a9c9c1(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/b0e16d.wgsl.expected.msl b/test/builtins/gen/textureDimensions/b0e16d.wgsl.expected.msl
index 0179517..ee971ff 100644
--- a/test/builtins/gen/textureDimensions/b0e16d.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/b0e16d.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_b0e16d(texture2d<int, access::sample> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(0), tint_symbol_1.get_height(0));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<int, access::sample> tint_symbol_2) {
   textureDimensions_b0e16d(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/b3c954.wgsl.expected.msl b/test/builtins/gen/textureDimensions/b3c954.wgsl.expected.msl
index 38d9160..a7daabd 100644
--- a/test/builtins/gen/textureDimensions/b3c954.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/b3c954.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_b3c954(texturecube<uint, access::sample> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texturecube<uint, access::sample> tint_symbol_2) {
   textureDimensions_b3c954(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/b3e407.wgsl.expected.msl b/test/builtins/gen/textureDimensions/b3e407.wgsl.expected.msl
index 124c951..6b96a63 100644
--- a/test/builtins/gen/textureDimensions/b3e407.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/b3e407.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_b3e407(texture1d<float, access::sample> tint_symbol_1) {
   int res = int(tint_symbol_1.get_width(0));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture1d<float, access::sample> tint_symbol_2) {
   textureDimensions_b3e407(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/b91240.wgsl.expected.msl b/test/builtins/gen/textureDimensions/b91240.wgsl.expected.msl
index f45b6a6..84375ca 100644
--- a/test/builtins/gen/textureDimensions/b91240.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/b91240.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_b91240(texture2d<float, access::write> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<float, access::write> tint_symbol_2) {
   textureDimensions_b91240(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/ba1481.wgsl.expected.msl b/test/builtins/gen/textureDimensions/ba1481.wgsl.expected.msl
index a4061f5..5162685 100644
--- a/test/builtins/gen/textureDimensions/ba1481.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/ba1481.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_ba1481(texture2d<float, access::sample> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<float, access::sample> tint_symbol_2) {
   textureDimensions_ba1481(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/bb3dde.wgsl.expected.msl b/test/builtins/gen/textureDimensions/bb3dde.wgsl.expected.msl
index 6b79d76..89c1d84 100644
--- a/test/builtins/gen/textureDimensions/bb3dde.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/bb3dde.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_bb3dde(texture3d<int, access::write> tint_symbol_1) {
   int3 res = int3(tint_symbol_1.get_width(), tint_symbol_1.get_height(), tint_symbol_1.get_depth());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture3d<int, access::write> tint_symbol_2) {
   textureDimensions_bb3dde(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/c30e75.wgsl.expected.msl b/test/builtins/gen/textureDimensions/c30e75.wgsl.expected.msl
index 7c7f94a..815d44c 100644
--- a/test/builtins/gen/textureDimensions/c30e75.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/c30e75.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_c30e75(texture2d<int, access::write> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<int, access::write> tint_symbol_2) {
   textureDimensions_c30e75(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/c7943d.wgsl.expected.msl b/test/builtins/gen/textureDimensions/c7943d.wgsl.expected.msl
index 38ba882..ff4d805 100644
--- a/test/builtins/gen/textureDimensions/c7943d.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/c7943d.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_c7943d(texture2d<uint, access::write> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<uint, access::write> tint_symbol_2) {
   textureDimensions_c7943d(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/cc968c.wgsl.expected.msl b/test/builtins/gen/textureDimensions/cc968c.wgsl.expected.msl
index a585ee8..93357b8 100644
--- a/test/builtins/gen/textureDimensions/cc968c.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/cc968c.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_cc968c(texture1d<int, access::write> tint_symbol_1) {
   int res = int(tint_symbol_1.get_width(0));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture1d<int, access::write> tint_symbol_2) {
   textureDimensions_cc968c(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/cccc8f.wgsl.expected.msl b/test/builtins/gen/textureDimensions/cccc8f.wgsl.expected.msl
index d02c7e5..7e988b4 100644
--- a/test/builtins/gen/textureDimensions/cccc8f.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/cccc8f.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_cccc8f(texture1d<float, access::write> tint_symbol_1) {
   int res = int(tint_symbol_1.get_width(0));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture1d<float, access::write> tint_symbol_2) {
   textureDimensions_cccc8f(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/cd76a7.wgsl.expected.msl b/test/builtins/gen/textureDimensions/cd76a7.wgsl.expected.msl
index 3cf1c78..5013514 100644
--- a/test/builtins/gen/textureDimensions/cd76a7.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/cd76a7.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_cd76a7(texture3d<float, access::write> tint_symbol_1) {
   int3 res = int3(tint_symbol_1.get_width(), tint_symbol_1.get_height(), tint_symbol_1.get_depth());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture3d<float, access::write> tint_symbol_2) {
   textureDimensions_cd76a7(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/cdf473.wgsl.expected.msl b/test/builtins/gen/textureDimensions/cdf473.wgsl.expected.msl
index 62699bb..8cd521d 100644
--- a/test/builtins/gen/textureDimensions/cdf473.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/cdf473.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_cdf473(texture2d_array<int, access::write> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
   textureDimensions_cdf473(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/cec841.wgsl.expected.msl b/test/builtins/gen/textureDimensions/cec841.wgsl.expected.msl
index e664498..689a796 100644
--- a/test/builtins/gen/textureDimensions/cec841.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/cec841.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_cec841(texture2d_array<float, access::sample> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<float, access::sample> tint_symbol_2) {
   textureDimensions_cec841(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/cf7e43.wgsl.expected.msl b/test/builtins/gen/textureDimensions/cf7e43.wgsl.expected.msl
index 9850e71..d9b4998 100644
--- a/test/builtins/gen/textureDimensions/cf7e43.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/cf7e43.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_cf7e43(texture3d<float, access::write> tint_symbol_1) {
   int3 res = int3(tint_symbol_1.get_width(), tint_symbol_1.get_height(), tint_symbol_1.get_depth());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture3d<float, access::write> tint_symbol_2) {
   textureDimensions_cf7e43(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/d125bc.wgsl.expected.msl b/test/builtins/gen/textureDimensions/d125bc.wgsl.expected.msl
index 93527ec..d36c63f 100644
--- a/test/builtins/gen/textureDimensions/d125bc.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/d125bc.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_d125bc(texturecube<float, access::sample> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texturecube<float, access::sample> tint_symbol_2) {
   textureDimensions_d125bc(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/d83c45.wgsl.expected.msl b/test/builtins/gen/textureDimensions/d83c45.wgsl.expected.msl
index 1e41914..c33e6df 100644
--- a/test/builtins/gen/textureDimensions/d83c45.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/d83c45.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_d83c45(texturecube_array<uint, access::sample> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(0), tint_symbol_1.get_height(0));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texturecube_array<uint, access::sample> tint_symbol_2) {
   textureDimensions_d83c45(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/daf7c0.wgsl.expected.msl b/test/builtins/gen/textureDimensions/daf7c0.wgsl.expected.msl
index 4518537..086ae36 100644
--- a/test/builtins/gen/textureDimensions/daf7c0.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/daf7c0.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_daf7c0(texture2d_ms<int, access::read> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_ms<int, access::read> tint_symbol_2) {
   textureDimensions_daf7c0(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/dc2dd0.wgsl.expected.msl b/test/builtins/gen/textureDimensions/dc2dd0.wgsl.expected.msl
index f33ba03..be8620c 100644
--- a/test/builtins/gen/textureDimensions/dc2dd0.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/dc2dd0.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_dc2dd0(texture1d<uint, access::write> tint_symbol_1) {
   int res = int(tint_symbol_1.get_width(0));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture1d<uint, access::write> tint_symbol_2) {
   textureDimensions_dc2dd0(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/e927be.wgsl.expected.msl b/test/builtins/gen/textureDimensions/e927be.wgsl.expected.msl
index 738c210..40d1010 100644
--- a/test/builtins/gen/textureDimensions/e927be.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/e927be.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_e927be(texturecube_array<int, access::sample> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texturecube_array<int, access::sample> tint_symbol_2) {
   textureDimensions_e927be(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/e9e96c.wgsl.expected.msl b/test/builtins/gen/textureDimensions/e9e96c.wgsl.expected.msl
index 8adc475..71d8e46 100644
--- a/test/builtins/gen/textureDimensions/e9e96c.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/e9e96c.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_e9e96c(texture2d_array<float, access::write> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
   textureDimensions_e9e96c(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/ef5b89.wgsl.expected.msl b/test/builtins/gen/textureDimensions/ef5b89.wgsl.expected.msl
index a1573f0..c6c771a 100644
--- a/test/builtins/gen/textureDimensions/ef5b89.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/ef5b89.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_ef5b89(texture2d_ms<float, access::read> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_ms<float, access::read> tint_symbol_2) {
   textureDimensions_ef5b89(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/efc8a4.wgsl.expected.msl b/test/builtins/gen/textureDimensions/efc8a4.wgsl.expected.msl
index 26c0bc5..5f79ff3 100644
--- a/test/builtins/gen/textureDimensions/efc8a4.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/efc8a4.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_efc8a4(texture3d<int, access::sample> tint_symbol_1) {
   int3 res = int3(tint_symbol_1.get_width(0), tint_symbol_1.get_height(0), tint_symbol_1.get_depth(0));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture3d<int, access::sample> tint_symbol_2) {
   textureDimensions_efc8a4(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/f60bdb.wgsl.expected.msl b/test/builtins/gen/textureDimensions/f60bdb.wgsl.expected.msl
index 2a4fdce..13b604c 100644
--- a/test/builtins/gen/textureDimensions/f60bdb.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/f60bdb.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_f60bdb(depth2d_ms<float, access::read> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(depth2d_ms<float, access::read> tint_symbol_2) {
   textureDimensions_f60bdb(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/f7145b.wgsl.expected.msl b/test/builtins/gen/textureDimensions/f7145b.wgsl.expected.msl
index 71be199..6dbf9e9 100644
--- a/test/builtins/gen/textureDimensions/f7145b.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/f7145b.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_f7145b(texture2d<uint, access::sample> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(0), tint_symbol_1.get_height(0));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<uint, access::sample> tint_symbol_2) {
   textureDimensions_f7145b(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/f931c7.wgsl.expected.msl b/test/builtins/gen/textureDimensions/f931c7.wgsl.expected.msl
index 0523c76..8167596 100644
--- a/test/builtins/gen/textureDimensions/f931c7.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/f931c7.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_f931c7(texture2d<float, access::write> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<float, access::write> tint_symbol_2) {
   textureDimensions_f931c7(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/fa9859.wgsl.expected.msl b/test/builtins/gen/textureDimensions/fa9859.wgsl.expected.msl
index 89b8eff..193d7d9 100644
--- a/test/builtins/gen/textureDimensions/fa9859.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/fa9859.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_fa9859(texture2d<int, access::sample> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<int, access::sample> tint_symbol_2) {
   textureDimensions_fa9859(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/fb5670.wgsl.expected.msl b/test/builtins/gen/textureDimensions/fb5670.wgsl.expected.msl
index 0640b97..bf7f8df 100644
--- a/test/builtins/gen/textureDimensions/fb5670.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/fb5670.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_fb5670(texture2d_array<float, access::write> tint_symbol_1) {
   int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
   textureDimensions_fb5670(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureDimensions/fcac78.wgsl.expected.msl b/test/builtins/gen/textureDimensions/fcac78.wgsl.expected.msl
index 3b3c463..6049ea8 100644
--- a/test/builtins/gen/textureDimensions/fcac78.wgsl.expected.msl
+++ b/test/builtins/gen/textureDimensions/fcac78.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureDimensions_fcac78(texture3d<uint, access::write> tint_symbol_1) {
   int3 res = int3(tint_symbol_1.get_width(), tint_symbol_1.get_height(), tint_symbol_1.get_depth());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture3d<uint, access::write> tint_symbol_2) {
   textureDimensions_fcac78(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureGather/01305f.wgsl.expected.msl b/test/builtins/gen/textureGather/01305f.wgsl.expected.msl
index 2f68275..684d655 100644
--- a/test/builtins/gen/textureGather/01305f.wgsl.expected.msl
+++ b/test/builtins/gen/textureGather/01305f.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureGather_01305f(texture2d_array<uint, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   uint4 res = tint_symbol_1.gather(tint_symbol_2, float2(), 1, int2(0), component::y);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<uint, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureGather_01305f(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureGather/06030a.wgsl.expected.msl b/test/builtins/gen/textureGather/06030a.wgsl.expected.msl
index 247e473..58cfec2 100644
--- a/test/builtins/gen/textureGather/06030a.wgsl.expected.msl
+++ b/test/builtins/gen/textureGather/06030a.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureGather_06030a(texture2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   float4 res = tint_symbol_1.gather(tint_symbol_2, float2(), 1, int2(), component::y);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<float, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureGather_06030a(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureGather/10c554.wgsl.expected.msl b/test/builtins/gen/textureGather/10c554.wgsl.expected.msl
index 076e037..9fe4166 100644
--- a/test/builtins/gen/textureGather/10c554.wgsl.expected.msl
+++ b/test/builtins/gen/textureGather/10c554.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureGather_10c554(depthcube<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   float4 res = tint_symbol_1.gather(tint_symbol_2, float3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(depthcube<float, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureGather_10c554(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureGather/15d79c.wgsl.expected.msl b/test/builtins/gen/textureGather/15d79c.wgsl.expected.msl
index 5290c91..37a9753 100644
--- a/test/builtins/gen/textureGather/15d79c.wgsl.expected.msl
+++ b/test/builtins/gen/textureGather/15d79c.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureGather_15d79c(texture2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   float4 res = tint_symbol_1.gather(tint_symbol_2, float2(), int2(), component::y);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<float, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureGather_15d79c(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureGather/2e0ed5.wgsl.expected.msl b/test/builtins/gen/textureGather/2e0ed5.wgsl.expected.msl
index 2406342..dfe8941 100644
--- a/test/builtins/gen/textureGather/2e0ed5.wgsl.expected.msl
+++ b/test/builtins/gen/textureGather/2e0ed5.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureGather_2e0ed5(depth2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   float4 res = tint_symbol_1.gather(tint_symbol_2, float2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(depth2d<float, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureGather_2e0ed5(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureGather/3112e8.wgsl.expected.msl b/test/builtins/gen/textureGather/3112e8.wgsl.expected.msl
index e160771..69f2b13 100644
--- a/test/builtins/gen/textureGather/3112e8.wgsl.expected.msl
+++ b/test/builtins/gen/textureGather/3112e8.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureGather_3112e8(texturecube_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   float4 res = tint_symbol_1.gather(tint_symbol_2, float3(), 1, component::y);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texturecube_array<float, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureGather_3112e8(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureGather/3c527e.wgsl.expected.msl b/test/builtins/gen/textureGather/3c527e.wgsl.expected.msl
index 94df233..c5458cf 100644
--- a/test/builtins/gen/textureGather/3c527e.wgsl.expected.msl
+++ b/test/builtins/gen/textureGather/3c527e.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureGather_3c527e(texturecube_array<uint, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   uint4 res = tint_symbol_1.gather(tint_symbol_2, float3(), 1, component::y);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texturecube_array<uint, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureGather_3c527e(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureGather/43025d.wgsl.expected.msl b/test/builtins/gen/textureGather/43025d.wgsl.expected.msl
index 6f16342..a2c6d25 100644
--- a/test/builtins/gen/textureGather/43025d.wgsl.expected.msl
+++ b/test/builtins/gen/textureGather/43025d.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureGather_43025d(depthcube_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   float4 res = tint_symbol_1.gather(tint_symbol_2, float3(), 1);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(depthcube_array<float, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureGather_43025d(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureGather/4f2350.wgsl.expected.msl b/test/builtins/gen/textureGather/4f2350.wgsl.expected.msl
index 767864c..947743e 100644
--- a/test/builtins/gen/textureGather/4f2350.wgsl.expected.msl
+++ b/test/builtins/gen/textureGather/4f2350.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureGather_4f2350(texture2d_array<int, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   int4 res = tint_symbol_1.gather(tint_symbol_2, float2(), 1, int2(), component::y);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<int, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureGather_4f2350(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureGather/51cf0b.wgsl.expected.msl b/test/builtins/gen/textureGather/51cf0b.wgsl.expected.msl
index dc883fa..a082138 100644
--- a/test/builtins/gen/textureGather/51cf0b.wgsl.expected.msl
+++ b/test/builtins/gen/textureGather/51cf0b.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureGather_51cf0b(texture2d_array<int, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   int4 res = tint_symbol_1.gather(tint_symbol_2, float2(), 1, int2(0), component::y);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<int, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureGather_51cf0b(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureGather/53ece6.wgsl.expected.msl b/test/builtins/gen/textureGather/53ece6.wgsl.expected.msl
index 7da86ab..2a5dbf0 100644
--- a/test/builtins/gen/textureGather/53ece6.wgsl.expected.msl
+++ b/test/builtins/gen/textureGather/53ece6.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureGather_53ece6(depth2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   float4 res = tint_symbol_1.gather(tint_symbol_2, float2(), 1, int2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(depth2d_array<float, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureGather_53ece6(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureGather/57bfc6.wgsl.expected.msl b/test/builtins/gen/textureGather/57bfc6.wgsl.expected.msl
index fb947d4..426ea20 100644
--- a/test/builtins/gen/textureGather/57bfc6.wgsl.expected.msl
+++ b/test/builtins/gen/textureGather/57bfc6.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureGather_57bfc6(texturecube<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   float4 res = tint_symbol_1.gather(tint_symbol_2, float3(), component::y);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texturecube<float, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureGather_57bfc6(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureGather/587ba3.wgsl.expected.msl b/test/builtins/gen/textureGather/587ba3.wgsl.expected.msl
index 2b32e79..0ce1455 100644
--- a/test/builtins/gen/textureGather/587ba3.wgsl.expected.msl
+++ b/test/builtins/gen/textureGather/587ba3.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureGather_587ba3(texture2d<int, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   int4 res = tint_symbol_1.gather(tint_symbol_2, float2(), int2(0), component::y);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<int, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureGather_587ba3(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureGather/69e0fb.wgsl.expected.msl b/test/builtins/gen/textureGather/69e0fb.wgsl.expected.msl
index fa09d32..43be4df 100644
--- a/test/builtins/gen/textureGather/69e0fb.wgsl.expected.msl
+++ b/test/builtins/gen/textureGather/69e0fb.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureGather_69e0fb(texture2d<int, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   int4 res = tint_symbol_1.gather(tint_symbol_2, float2(), int2(), component::y);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<int, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureGather_69e0fb(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureGather/93003d.wgsl.expected.msl b/test/builtins/gen/textureGather/93003d.wgsl.expected.msl
index 5498485..b7c2ba3 100644
--- a/test/builtins/gen/textureGather/93003d.wgsl.expected.msl
+++ b/test/builtins/gen/textureGather/93003d.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureGather_93003d(texture2d<uint, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   uint4 res = tint_symbol_1.gather(tint_symbol_2, float2(), int2(), component::y);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<uint, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureGather_93003d(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureGather/9a6358.wgsl.expected.msl b/test/builtins/gen/textureGather/9a6358.wgsl.expected.msl
index d65de71..8588a79 100644
--- a/test/builtins/gen/textureGather/9a6358.wgsl.expected.msl
+++ b/test/builtins/gen/textureGather/9a6358.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureGather_9a6358(depth2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   float4 res = tint_symbol_1.gather(tint_symbol_2, float2(), 1);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(depth2d_array<float, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureGather_9a6358(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureGather/9efca2.wgsl.expected.msl b/test/builtins/gen/textureGather/9efca2.wgsl.expected.msl
index a99e1db..4705de2 100644
--- a/test/builtins/gen/textureGather/9efca2.wgsl.expected.msl
+++ b/test/builtins/gen/textureGather/9efca2.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureGather_9efca2(texture2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   float4 res = tint_symbol_1.gather(tint_symbol_2, float2(), 1, int2(0), component::y);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<float, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureGather_9efca2(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureGather/bd0b1e.wgsl.expected.msl b/test/builtins/gen/textureGather/bd0b1e.wgsl.expected.msl
index 80efabd..d8311b3 100644
--- a/test/builtins/gen/textureGather/bd0b1e.wgsl.expected.msl
+++ b/test/builtins/gen/textureGather/bd0b1e.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureGather_bd0b1e(texture2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   float4 res = tint_symbol_1.gather(tint_symbol_2, float2(), int2(0), component::y);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<float, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureGather_bd0b1e(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureGather/c409ae.wgsl.expected.msl b/test/builtins/gen/textureGather/c409ae.wgsl.expected.msl
index 2e63e77..c917900 100644
--- a/test/builtins/gen/textureGather/c409ae.wgsl.expected.msl
+++ b/test/builtins/gen/textureGather/c409ae.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureGather_c409ae(depth2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   float4 res = tint_symbol_1.gather(tint_symbol_2, float2(), int2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(depth2d<float, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureGather_c409ae(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureGather/c55822.wgsl.expected.msl b/test/builtins/gen/textureGather/c55822.wgsl.expected.msl
index 57ad16e..9f34359 100644
--- a/test/builtins/gen/textureGather/c55822.wgsl.expected.msl
+++ b/test/builtins/gen/textureGather/c55822.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureGather_c55822(texturecube_array<int, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   int4 res = tint_symbol_1.gather(tint_symbol_2, float3(), 1, component::y);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texturecube_array<int, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureGather_c55822(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureGather/e1b67d.wgsl.expected.msl b/test/builtins/gen/textureGather/e1b67d.wgsl.expected.msl
index 6e5fb4b..8d806f9 100644
--- a/test/builtins/gen/textureGather/e1b67d.wgsl.expected.msl
+++ b/test/builtins/gen/textureGather/e1b67d.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureGather_e1b67d(texturecube<uint, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   uint4 res = tint_symbol_1.gather(tint_symbol_2, float3(), component::y);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texturecube<uint, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureGather_e1b67d(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureGather/e9eff6.wgsl.expected.msl b/test/builtins/gen/textureGather/e9eff6.wgsl.expected.msl
index 7e09a81..81c960d 100644
--- a/test/builtins/gen/textureGather/e9eff6.wgsl.expected.msl
+++ b/test/builtins/gen/textureGather/e9eff6.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureGather_e9eff6(texture2d<uint, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   uint4 res = tint_symbol_1.gather(tint_symbol_2, float2(), int2(0), component::y);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<uint, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureGather_e9eff6(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureGather/f5f3ba.wgsl.expected.msl b/test/builtins/gen/textureGather/f5f3ba.wgsl.expected.msl
index 461f0e4..674927c 100644
--- a/test/builtins/gen/textureGather/f5f3ba.wgsl.expected.msl
+++ b/test/builtins/gen/textureGather/f5f3ba.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureGather_f5f3ba(texture2d_array<uint, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   uint4 res = tint_symbol_1.gather(tint_symbol_2, float2(), 1, int2(), component::y);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<uint, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureGather_f5f3ba(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureGather/f7995a.wgsl.expected.msl b/test/builtins/gen/textureGather/f7995a.wgsl.expected.msl
index e154e15..daf9ec7 100644
--- a/test/builtins/gen/textureGather/f7995a.wgsl.expected.msl
+++ b/test/builtins/gen/textureGather/f7995a.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureGather_f7995a(texturecube<int, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   int4 res = tint_symbol_1.gather(tint_symbol_2, float3(), component::y);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texturecube<int, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureGather_f7995a(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureGatherCompare/182fd4.wgsl.expected.msl b/test/builtins/gen/textureGatherCompare/182fd4.wgsl.expected.msl
index 07d9f5c..87e6661 100644
--- a/test/builtins/gen/textureGatherCompare/182fd4.wgsl.expected.msl
+++ b/test/builtins/gen/textureGatherCompare/182fd4.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureGatherCompare_182fd4(depthcube<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   float4 res = tint_symbol_1.gather_compare(tint_symbol_2, float3(), 1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(depthcube<float, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureGatherCompare_182fd4(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureGatherCompare/60d2d1.wgsl.expected.msl b/test/builtins/gen/textureGatherCompare/60d2d1.wgsl.expected.msl
index e504b00..3fb5c13 100644
--- a/test/builtins/gen/textureGatherCompare/60d2d1.wgsl.expected.msl
+++ b/test/builtins/gen/textureGatherCompare/60d2d1.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureGatherCompare_60d2d1(depthcube_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   float4 res = tint_symbol_1.gather_compare(tint_symbol_2, float3(), 1, 1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(depthcube_array<float, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureGatherCompare_60d2d1(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureGatherCompare/6d9352.wgsl.expected.msl b/test/builtins/gen/textureGatherCompare/6d9352.wgsl.expected.msl
index 8bcdc2d..cacdd37 100644
--- a/test/builtins/gen/textureGatherCompare/6d9352.wgsl.expected.msl
+++ b/test/builtins/gen/textureGatherCompare/6d9352.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureGatherCompare_6d9352(depth2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   float4 res = tint_symbol_1.gather_compare(tint_symbol_2, float2(), 1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(depth2d<float, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureGatherCompare_6d9352(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureGatherCompare/6f1267.wgsl.expected.msl b/test/builtins/gen/textureGatherCompare/6f1267.wgsl.expected.msl
index f5fcff2..1e3a96f 100644
--- a/test/builtins/gen/textureGatherCompare/6f1267.wgsl.expected.msl
+++ b/test/builtins/gen/textureGatherCompare/6f1267.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureGatherCompare_6f1267(depth2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   float4 res = tint_symbol_1.gather_compare(tint_symbol_2, float2(), 1, 1.0f, int2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(depth2d_array<float, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureGatherCompare_6f1267(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureGatherCompare/783e65.wgsl.expected.msl b/test/builtins/gen/textureGatherCompare/783e65.wgsl.expected.msl
index 86197e6..5520d91 100644
--- a/test/builtins/gen/textureGatherCompare/783e65.wgsl.expected.msl
+++ b/test/builtins/gen/textureGatherCompare/783e65.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureGatherCompare_783e65(depth2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   float4 res = tint_symbol_1.gather_compare(tint_symbol_2, float2(), 1, 1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(depth2d_array<float, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureGatherCompare_783e65(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureGatherCompare/a5f587.wgsl.expected.msl b/test/builtins/gen/textureGatherCompare/a5f587.wgsl.expected.msl
index 2c0176b..94edcad 100644
--- a/test/builtins/gen/textureGatherCompare/a5f587.wgsl.expected.msl
+++ b/test/builtins/gen/textureGatherCompare/a5f587.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureGatherCompare_a5f587(depth2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   float4 res = tint_symbol_1.gather_compare(tint_symbol_2, float2(), 1.0f, int2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(depth2d<float, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureGatherCompare_a5f587(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureLoad/19cf87.wgsl.expected.msl b/test/builtins/gen/textureLoad/19cf87.wgsl.expected.msl
index e06a862..c9b2c1d 100644
--- a/test/builtins/gen/textureLoad/19cf87.wgsl.expected.msl
+++ b/test/builtins/gen/textureLoad/19cf87.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureLoad_19cf87(depth2d<float, access::sample> tint_symbol_1) {
   float res = tint_symbol_1.read(uint2(int2()), 0);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(depth2d<float, access::sample> tint_symbol_2) {
   textureLoad_19cf87(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureLoad/1b8588.wgsl.expected.msl b/test/builtins/gen/textureLoad/1b8588.wgsl.expected.msl
index f5f44e8..2dd4d15 100644
--- a/test/builtins/gen/textureLoad/1b8588.wgsl.expected.msl
+++ b/test/builtins/gen/textureLoad/1b8588.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureLoad_1b8588(texture1d<uint, access::sample> tint_symbol_1) {
   uint4 res = tint_symbol_1.read(uint(1), 0);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture1d<uint, access::sample> tint_symbol_2) {
   textureLoad_1b8588(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureLoad/1f2016.wgsl.expected.msl b/test/builtins/gen/textureLoad/1f2016.wgsl.expected.msl
index 4186f51..296e7bb 100644
--- a/test/builtins/gen/textureLoad/1f2016.wgsl.expected.msl
+++ b/test/builtins/gen/textureLoad/1f2016.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureLoad_1f2016(texture3d<float, access::sample> tint_symbol_1) {
   float4 res = tint_symbol_1.read(uint3(int3()), 0);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture3d<float, access::sample> tint_symbol_2) {
   textureLoad_1f2016(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureLoad/484344.wgsl.expected.msl b/test/builtins/gen/textureLoad/484344.wgsl.expected.msl
index 4fb7b02..b1ffb1d 100644
--- a/test/builtins/gen/textureLoad/484344.wgsl.expected.msl
+++ b/test/builtins/gen/textureLoad/484344.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureLoad_484344(texture2d<float, access::sample> tint_symbol_1) {
   float4 res = tint_symbol_1.read(uint2(int2()), 0);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<float, access::sample> tint_symbol_2) {
   textureLoad_484344(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureLoad/4fd803.wgsl.expected.msl b/test/builtins/gen/textureLoad/4fd803.wgsl.expected.msl
index a83494a..ccfeb6a 100644
--- a/test/builtins/gen/textureLoad/4fd803.wgsl.expected.msl
+++ b/test/builtins/gen/textureLoad/4fd803.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureLoad_4fd803(texture3d<int, access::sample> tint_symbol_1) {
   int4 res = tint_symbol_1.read(uint3(int3()), 0);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture3d<int, access::sample> tint_symbol_2) {
   textureLoad_4fd803(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureLoad/5a2f9d.wgsl.expected.msl b/test/builtins/gen/textureLoad/5a2f9d.wgsl.expected.msl
index 10d9133..54f52cf 100644
--- a/test/builtins/gen/textureLoad/5a2f9d.wgsl.expected.msl
+++ b/test/builtins/gen/textureLoad/5a2f9d.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureLoad_5a2f9d(texture1d<int, access::sample> tint_symbol_1) {
   int4 res = tint_symbol_1.read(uint(1), 0);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture1d<int, access::sample> tint_symbol_2) {
   textureLoad_5a2f9d(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureLoad/6154d4.wgsl.expected.msl b/test/builtins/gen/textureLoad/6154d4.wgsl.expected.msl
index 9fdd4a4..a542c12 100644
--- a/test/builtins/gen/textureLoad/6154d4.wgsl.expected.msl
+++ b/test/builtins/gen/textureLoad/6154d4.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureLoad_6154d4(texture2d<uint, access::sample> tint_symbol_1) {
   uint4 res = tint_symbol_1.read(uint2(int2()), 0);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<uint, access::sample> tint_symbol_2) {
   textureLoad_6154d4(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureLoad/6273b1.wgsl.expected.msl b/test/builtins/gen/textureLoad/6273b1.wgsl.expected.msl
index 69c6257..8dfd72b 100644
--- a/test/builtins/gen/textureLoad/6273b1.wgsl.expected.msl
+++ b/test/builtins/gen/textureLoad/6273b1.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureLoad_6273b1(depth2d_ms<float, access::read> tint_symbol_1) {
   float res = tint_symbol_1.read(uint2(int2()), 1);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(depth2d_ms<float, access::read> tint_symbol_2) {
   textureLoad_6273b1(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureLoad/79e697.wgsl.expected.msl b/test/builtins/gen/textureLoad/79e697.wgsl.expected.msl
index 1a92b23..4e4cacf 100644
--- a/test/builtins/gen/textureLoad/79e697.wgsl.expected.msl
+++ b/test/builtins/gen/textureLoad/79e697.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureLoad_79e697(texture2d_array<int, access::sample> tint_symbol_1) {
   int4 res = tint_symbol_1.read(uint2(int2()), 1, 0);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<int, access::sample> tint_symbol_2) {
   textureLoad_79e697(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureLoad/7c90e5.wgsl.expected.msl b/test/builtins/gen/textureLoad/7c90e5.wgsl.expected.msl
index 463f1a9..a2b782a 100644
--- a/test/builtins/gen/textureLoad/7c90e5.wgsl.expected.msl
+++ b/test/builtins/gen/textureLoad/7c90e5.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureLoad_7c90e5(texture2d_array<uint, access::sample> tint_symbol_1) {
   uint4 res = tint_symbol_1.read(uint2(int2()), 1, 0);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<uint, access::sample> tint_symbol_2) {
   textureLoad_7c90e5(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureLoad/81c381.wgsl.expected.msl b/test/builtins/gen/textureLoad/81c381.wgsl.expected.msl
index d3d567d..d2fd8d0 100644
--- a/test/builtins/gen/textureLoad/81c381.wgsl.expected.msl
+++ b/test/builtins/gen/textureLoad/81c381.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureLoad_81c381(texture1d<float, access::sample> tint_symbol_1) {
   float4 res = tint_symbol_1.read(uint(1), 0);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture1d<float, access::sample> tint_symbol_2) {
   textureLoad_81c381(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureLoad/87be85.wgsl.expected.msl b/test/builtins/gen/textureLoad/87be85.wgsl.expected.msl
index 7746c5b..c8337af 100644
--- a/test/builtins/gen/textureLoad/87be85.wgsl.expected.msl
+++ b/test/builtins/gen/textureLoad/87be85.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureLoad_87be85(texture2d_array<float, access::sample> tint_symbol_1) {
   float4 res = tint_symbol_1.read(uint2(int2()), 1, 0);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<float, access::sample> tint_symbol_2) {
   textureLoad_87be85(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureLoad/8acf41.wgsl.expected.msl b/test/builtins/gen/textureLoad/8acf41.wgsl.expected.msl
index 3a747df..994e6eb 100644
--- a/test/builtins/gen/textureLoad/8acf41.wgsl.expected.msl
+++ b/test/builtins/gen/textureLoad/8acf41.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureLoad_8acf41(texture2d<float, access::sample> tint_symbol_1) {
   float4 res = tint_symbol_1.read(uint2(int2()), 0);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<float, access::sample> tint_symbol_2) {
   textureLoad_8acf41(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureLoad/9b2667.wgsl.expected.msl b/test/builtins/gen/textureLoad/9b2667.wgsl.expected.msl
index 59d52ac..9faf689 100644
--- a/test/builtins/gen/textureLoad/9b2667.wgsl.expected.msl
+++ b/test/builtins/gen/textureLoad/9b2667.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureLoad_9b2667(depth2d_array<float, access::sample> tint_symbol_1) {
   float res = tint_symbol_1.read(uint2(int2()), 1, 0);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(depth2d_array<float, access::sample> tint_symbol_2) {
   textureLoad_9b2667(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureLoad/a583c9.wgsl.expected.msl b/test/builtins/gen/textureLoad/a583c9.wgsl.expected.msl
index 0d0a47f..553f45e 100644
--- a/test/builtins/gen/textureLoad/a583c9.wgsl.expected.msl
+++ b/test/builtins/gen/textureLoad/a583c9.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureLoad_a583c9(texture2d_ms<float, access::read> tint_symbol_1) {
   float4 res = tint_symbol_1.read(uint2(int2()), 1);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_ms<float, access::read> tint_symbol_2) {
   textureLoad_a583c9(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureLoad/a9a9f5.wgsl.expected.msl b/test/builtins/gen/textureLoad/a9a9f5.wgsl.expected.msl
index 35cd32a..1d87c99 100644
--- a/test/builtins/gen/textureLoad/a9a9f5.wgsl.expected.msl
+++ b/test/builtins/gen/textureLoad/a9a9f5.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureLoad_a9a9f5(texture3d<uint, access::sample> tint_symbol_1) {
   uint4 res = tint_symbol_1.read(uint3(int3()), 0);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture3d<uint, access::sample> tint_symbol_2) {
   textureLoad_a9a9f5(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureLoad/c2a480.wgsl.expected.msl b/test/builtins/gen/textureLoad/c2a480.wgsl.expected.msl
index 645ed0f..01badd3 100644
--- a/test/builtins/gen/textureLoad/c2a480.wgsl.expected.msl
+++ b/test/builtins/gen/textureLoad/c2a480.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureLoad_c2a480(texture2d<int, access::sample> tint_symbol_1) {
   int4 res = tint_symbol_1.read(uint2(int2()), 0);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<int, access::sample> tint_symbol_2) {
   textureLoad_c2a480(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureLoad/c378ee.wgsl.expected.msl b/test/builtins/gen/textureLoad/c378ee.wgsl.expected.msl
index 282257c..60085e0 100644
--- a/test/builtins/gen/textureLoad/c378ee.wgsl.expected.msl
+++ b/test/builtins/gen/textureLoad/c378ee.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureLoad_c378ee(texture2d_ms<uint, access::read> tint_symbol_1) {
   uint4 res = tint_symbol_1.read(uint2(int2()), 1);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_ms<uint, access::read> tint_symbol_2) {
   textureLoad_c378ee(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureLoad/e3d2cc.wgsl.expected.msl b/test/builtins/gen/textureLoad/e3d2cc.wgsl.expected.msl
index ff18046..1674c16 100644
--- a/test/builtins/gen/textureLoad/e3d2cc.wgsl.expected.msl
+++ b/test/builtins/gen/textureLoad/e3d2cc.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureLoad_e3d2cc(texture2d_ms<int, access::read> tint_symbol_1) {
   int4 res = tint_symbol_1.read(uint2(int2()), 1);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_ms<int, access::read> tint_symbol_2) {
   textureLoad_e3d2cc(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureNumLayers/024820.wgsl.expected.msl b/test/builtins/gen/textureNumLayers/024820.wgsl.expected.msl
index 4c7d325..cecc24d 100644
--- a/test/builtins/gen/textureNumLayers/024820.wgsl.expected.msl
+++ b/test/builtins/gen/textureNumLayers/024820.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureNumLayers_024820(texture2d_array<float, access::sample> tint_symbol_1) {
   int res = int(tint_symbol_1.get_array_size());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<float, access::sample> tint_symbol_2) {
   textureNumLayers_024820(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureNumLayers/053df7.wgsl.expected.msl b/test/builtins/gen/textureNumLayers/053df7.wgsl.expected.msl
index 46a1852..4c77a41 100644
--- a/test/builtins/gen/textureNumLayers/053df7.wgsl.expected.msl
+++ b/test/builtins/gen/textureNumLayers/053df7.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureNumLayers_053df7(texturecube_array<uint, access::sample> tint_symbol_1) {
   int res = int(tint_symbol_1.get_array_size());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texturecube_array<uint, access::sample> tint_symbol_2) {
   textureNumLayers_053df7(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureNumLayers/058cc3.wgsl.expected.msl b/test/builtins/gen/textureNumLayers/058cc3.wgsl.expected.msl
index 7327477..6ba3aec 100644
--- a/test/builtins/gen/textureNumLayers/058cc3.wgsl.expected.msl
+++ b/test/builtins/gen/textureNumLayers/058cc3.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureNumLayers_058cc3(texture2d_array<int, access::write> tint_symbol_1) {
   int res = int(tint_symbol_1.get_array_size());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
   textureNumLayers_058cc3(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureNumLayers/09d05d.wgsl.expected.msl b/test/builtins/gen/textureNumLayers/09d05d.wgsl.expected.msl
index 7a4461b..32372b9 100644
--- a/test/builtins/gen/textureNumLayers/09d05d.wgsl.expected.msl
+++ b/test/builtins/gen/textureNumLayers/09d05d.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureNumLayers_09d05d(texture2d_array<float, access::write> tint_symbol_1) {
   int res = int(tint_symbol_1.get_array_size());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
   textureNumLayers_09d05d(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureNumLayers/13b4ce.wgsl.expected.msl b/test/builtins/gen/textureNumLayers/13b4ce.wgsl.expected.msl
index e91fc4b..e48920f 100644
--- a/test/builtins/gen/textureNumLayers/13b4ce.wgsl.expected.msl
+++ b/test/builtins/gen/textureNumLayers/13b4ce.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureNumLayers_13b4ce(texture2d_array<int, access::write> tint_symbol_1) {
   int res = int(tint_symbol_1.get_array_size());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
   textureNumLayers_13b4ce(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureNumLayers/22e53b.wgsl.expected.msl b/test/builtins/gen/textureNumLayers/22e53b.wgsl.expected.msl
index 09c3768..7bfd96a 100644
--- a/test/builtins/gen/textureNumLayers/22e53b.wgsl.expected.msl
+++ b/test/builtins/gen/textureNumLayers/22e53b.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureNumLayers_22e53b(texture2d_array<int, access::write> tint_symbol_1) {
   int res = int(tint_symbol_1.get_array_size());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
   textureNumLayers_22e53b(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureNumLayers/562013.wgsl.expected.msl b/test/builtins/gen/textureNumLayers/562013.wgsl.expected.msl
index aa1efc5..29e697e 100644
--- a/test/builtins/gen/textureNumLayers/562013.wgsl.expected.msl
+++ b/test/builtins/gen/textureNumLayers/562013.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureNumLayers_562013(texture2d_array<float, access::write> tint_symbol_1) {
   int res = int(tint_symbol_1.get_array_size());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
   textureNumLayers_562013(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureNumLayers/5d59cd.wgsl.expected.msl b/test/builtins/gen/textureNumLayers/5d59cd.wgsl.expected.msl
index 023d182..ecbee59 100644
--- a/test/builtins/gen/textureNumLayers/5d59cd.wgsl.expected.msl
+++ b/test/builtins/gen/textureNumLayers/5d59cd.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureNumLayers_5d59cd(texturecube_array<float, access::sample> tint_symbol_1) {
   int res = int(tint_symbol_1.get_array_size());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texturecube_array<float, access::sample> tint_symbol_2) {
   textureNumLayers_5d59cd(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureNumLayers/68a65b.wgsl.expected.msl b/test/builtins/gen/textureNumLayers/68a65b.wgsl.expected.msl
index bd4a550..a71e53d 100644
--- a/test/builtins/gen/textureNumLayers/68a65b.wgsl.expected.msl
+++ b/test/builtins/gen/textureNumLayers/68a65b.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureNumLayers_68a65b(texture2d_array<float, access::write> tint_symbol_1) {
   int res = int(tint_symbol_1.get_array_size());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
   textureNumLayers_68a65b(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureNumLayers/778bd1.wgsl.expected.msl b/test/builtins/gen/textureNumLayers/778bd1.wgsl.expected.msl
index a953129..7d8fb0f 100644
--- a/test/builtins/gen/textureNumLayers/778bd1.wgsl.expected.msl
+++ b/test/builtins/gen/textureNumLayers/778bd1.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureNumLayers_778bd1(depthcube_array<float, access::sample> tint_symbol_1) {
   int res = int(tint_symbol_1.get_array_size());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(depthcube_array<float, access::sample> tint_symbol_2) {
   textureNumLayers_778bd1(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureNumLayers/7f1937.wgsl.expected.msl b/test/builtins/gen/textureNumLayers/7f1937.wgsl.expected.msl
index d094de4..e7027f1 100644
--- a/test/builtins/gen/textureNumLayers/7f1937.wgsl.expected.msl
+++ b/test/builtins/gen/textureNumLayers/7f1937.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureNumLayers_7f1937(texture2d_array<float, access::write> tint_symbol_1) {
   int res = int(tint_symbol_1.get_array_size());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
   textureNumLayers_7f1937(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureNumLayers/85f980.wgsl.expected.msl b/test/builtins/gen/textureNumLayers/85f980.wgsl.expected.msl
index 0967c44..ce07ab5 100644
--- a/test/builtins/gen/textureNumLayers/85f980.wgsl.expected.msl
+++ b/test/builtins/gen/textureNumLayers/85f980.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureNumLayers_85f980(texturecube_array<int, access::sample> tint_symbol_1) {
   int res = int(tint_symbol_1.get_array_size());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texturecube_array<int, access::sample> tint_symbol_2) {
   textureNumLayers_85f980(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureNumLayers/87953e.wgsl.expected.msl b/test/builtins/gen/textureNumLayers/87953e.wgsl.expected.msl
index e64875b..344a256 100644
--- a/test/builtins/gen/textureNumLayers/87953e.wgsl.expected.msl
+++ b/test/builtins/gen/textureNumLayers/87953e.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureNumLayers_87953e(texture2d_array<uint, access::sample> tint_symbol_1) {
   int res = int(tint_symbol_1.get_array_size());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<uint, access::sample> tint_symbol_2) {
   textureNumLayers_87953e(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureNumLayers/893e7c.wgsl.expected.msl b/test/builtins/gen/textureNumLayers/893e7c.wgsl.expected.msl
index ca4397b..9282aa8 100644
--- a/test/builtins/gen/textureNumLayers/893e7c.wgsl.expected.msl
+++ b/test/builtins/gen/textureNumLayers/893e7c.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureNumLayers_893e7c(texture2d_array<int, access::sample> tint_symbol_1) {
   int res = int(tint_symbol_1.get_array_size());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<int, access::sample> tint_symbol_2) {
   textureNumLayers_893e7c(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureNumLayers/9700fb.wgsl.expected.msl b/test/builtins/gen/textureNumLayers/9700fb.wgsl.expected.msl
index 7563653..9cd8aad 100644
--- a/test/builtins/gen/textureNumLayers/9700fb.wgsl.expected.msl
+++ b/test/builtins/gen/textureNumLayers/9700fb.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureNumLayers_9700fb(texture2d_array<uint, access::write> tint_symbol_1) {
   int res = int(tint_symbol_1.get_array_size());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
   textureNumLayers_9700fb(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureNumLayers/a216d2.wgsl.expected.msl b/test/builtins/gen/textureNumLayers/a216d2.wgsl.expected.msl
index dc42607..67624d6 100644
--- a/test/builtins/gen/textureNumLayers/a216d2.wgsl.expected.msl
+++ b/test/builtins/gen/textureNumLayers/a216d2.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureNumLayers_a216d2(texture2d_array<int, access::write> tint_symbol_1) {
   int res = int(tint_symbol_1.get_array_size());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
   textureNumLayers_a216d2(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureNumLayers/cd5dc8.wgsl.expected.msl b/test/builtins/gen/textureNumLayers/cd5dc8.wgsl.expected.msl
index 43c8cdb..d783a2d 100644
--- a/test/builtins/gen/textureNumLayers/cd5dc8.wgsl.expected.msl
+++ b/test/builtins/gen/textureNumLayers/cd5dc8.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureNumLayers_cd5dc8(texture2d_array<uint, access::write> tint_symbol_1) {
   int res = int(tint_symbol_1.get_array_size());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
   textureNumLayers_cd5dc8(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureNumLayers/d5b228.wgsl.expected.msl b/test/builtins/gen/textureNumLayers/d5b228.wgsl.expected.msl
index 89bc26e..d8f24b2 100644
--- a/test/builtins/gen/textureNumLayers/d5b228.wgsl.expected.msl
+++ b/test/builtins/gen/textureNumLayers/d5b228.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureNumLayers_d5b228(texture2d_array<float, access::write> tint_symbol_1) {
   int res = int(tint_symbol_1.get_array_size());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
   textureNumLayers_d5b228(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureNumLayers/e31be1.wgsl.expected.msl b/test/builtins/gen/textureNumLayers/e31be1.wgsl.expected.msl
index 037b86d..8935085 100644
--- a/test/builtins/gen/textureNumLayers/e31be1.wgsl.expected.msl
+++ b/test/builtins/gen/textureNumLayers/e31be1.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureNumLayers_e31be1(texture2d_array<float, access::write> tint_symbol_1) {
   int res = int(tint_symbol_1.get_array_size());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
   textureNumLayers_e31be1(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureNumLayers/e653c0.wgsl.expected.msl b/test/builtins/gen/textureNumLayers/e653c0.wgsl.expected.msl
index 6ef95ea..d37e9d9 100644
--- a/test/builtins/gen/textureNumLayers/e653c0.wgsl.expected.msl
+++ b/test/builtins/gen/textureNumLayers/e653c0.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureNumLayers_e653c0(depth2d_array<float, access::sample> tint_symbol_1) {
   int res = int(tint_symbol_1.get_array_size());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(depth2d_array<float, access::sample> tint_symbol_2) {
   textureNumLayers_e653c0(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureNumLayers/ee942f.wgsl.expected.msl b/test/builtins/gen/textureNumLayers/ee942f.wgsl.expected.msl
index bddf8a1..399e5bd 100644
--- a/test/builtins/gen/textureNumLayers/ee942f.wgsl.expected.msl
+++ b/test/builtins/gen/textureNumLayers/ee942f.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureNumLayers_ee942f(texture2d_array<uint, access::write> tint_symbol_1) {
   int res = int(tint_symbol_1.get_array_size());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
   textureNumLayers_ee942f(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureNumLayers/f33005.wgsl.expected.msl b/test/builtins/gen/textureNumLayers/f33005.wgsl.expected.msl
index 37f4a9a..78959f6 100644
--- a/test/builtins/gen/textureNumLayers/f33005.wgsl.expected.msl
+++ b/test/builtins/gen/textureNumLayers/f33005.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureNumLayers_f33005(texture2d_array<int, access::write> tint_symbol_1) {
   int res = int(tint_symbol_1.get_array_size());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
   textureNumLayers_f33005(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureNumLayers/fcec98.wgsl.expected.msl b/test/builtins/gen/textureNumLayers/fcec98.wgsl.expected.msl
index 9e764d3..ffcba51 100644
--- a/test/builtins/gen/textureNumLayers/fcec98.wgsl.expected.msl
+++ b/test/builtins/gen/textureNumLayers/fcec98.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureNumLayers_fcec98(texture2d_array<uint, access::write> tint_symbol_1) {
   int res = int(tint_symbol_1.get_array_size());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
   textureNumLayers_fcec98(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureNumLayers/ff5e89.wgsl.expected.msl b/test/builtins/gen/textureNumLayers/ff5e89.wgsl.expected.msl
index 1d0a638..2a83087 100644
--- a/test/builtins/gen/textureNumLayers/ff5e89.wgsl.expected.msl
+++ b/test/builtins/gen/textureNumLayers/ff5e89.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureNumLayers_ff5e89(texture2d_array<uint, access::write> tint_symbol_1) {
   int res = int(tint_symbol_1.get_array_size());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
   textureNumLayers_ff5e89(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureNumLevels/076cb5.wgsl.expected.msl b/test/builtins/gen/textureNumLevels/076cb5.wgsl.expected.msl
index 14c225f..e60a683 100644
--- a/test/builtins/gen/textureNumLevels/076cb5.wgsl.expected.msl
+++ b/test/builtins/gen/textureNumLevels/076cb5.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureNumLevels_076cb5(depthcube<float, access::sample> tint_symbol_1) {
   int res = int(tint_symbol_1.get_num_mip_levels());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(depthcube<float, access::sample> tint_symbol_2) {
   textureNumLevels_076cb5(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureNumLevels/080d95.wgsl.expected.msl b/test/builtins/gen/textureNumLevels/080d95.wgsl.expected.msl
index b05f3ee..c8fb39c 100644
--- a/test/builtins/gen/textureNumLevels/080d95.wgsl.expected.msl
+++ b/test/builtins/gen/textureNumLevels/080d95.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureNumLevels_080d95(texturecube<int, access::sample> tint_symbol_1) {
   int res = int(tint_symbol_1.get_num_mip_levels());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texturecube<int, access::sample> tint_symbol_2) {
   textureNumLevels_080d95(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureNumLevels/09ddd0.wgsl.expected.msl b/test/builtins/gen/textureNumLevels/09ddd0.wgsl.expected.msl
index c1df2e6..be2500a 100644
--- a/test/builtins/gen/textureNumLevels/09ddd0.wgsl.expected.msl
+++ b/test/builtins/gen/textureNumLevels/09ddd0.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureNumLevels_09ddd0(texture2d<uint, access::sample> tint_symbol_1) {
   int res = int(tint_symbol_1.get_num_mip_levels());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<uint, access::sample> tint_symbol_2) {
   textureNumLevels_09ddd0(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureNumLevels/105988.wgsl.expected.msl b/test/builtins/gen/textureNumLevels/105988.wgsl.expected.msl
index 3ed02e4..096d48d 100644
--- a/test/builtins/gen/textureNumLevels/105988.wgsl.expected.msl
+++ b/test/builtins/gen/textureNumLevels/105988.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureNumLevels_105988(texture2d_array<float, access::sample> tint_symbol_1) {
   int res = int(tint_symbol_1.get_num_mip_levels());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<float, access::sample> tint_symbol_2) {
   textureNumLevels_105988(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureNumLevels/1e6f3b.wgsl.expected.msl b/test/builtins/gen/textureNumLevels/1e6f3b.wgsl.expected.msl
index bd923ca..fb21aa7 100644
--- a/test/builtins/gen/textureNumLevels/1e6f3b.wgsl.expected.msl
+++ b/test/builtins/gen/textureNumLevels/1e6f3b.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureNumLevels_1e6f3b(texture1d<uint, access::sample> tint_symbol_1) {
   int res = int(tint_symbol_1.get_num_mip_levels());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture1d<uint, access::sample> tint_symbol_2) {
   textureNumLevels_1e6f3b(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureNumLevels/23f750.wgsl.expected.msl b/test/builtins/gen/textureNumLevels/23f750.wgsl.expected.msl
index 588b57b..dc6fd0a 100644
--- a/test/builtins/gen/textureNumLevels/23f750.wgsl.expected.msl
+++ b/test/builtins/gen/textureNumLevels/23f750.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureNumLevels_23f750(texture2d<int, access::sample> tint_symbol_1) {
   int res = int(tint_symbol_1.get_num_mip_levels());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<int, access::sample> tint_symbol_2) {
   textureNumLevels_23f750(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureNumLevels/2c3575.wgsl.expected.msl b/test/builtins/gen/textureNumLevels/2c3575.wgsl.expected.msl
index 4acb4d6..1492f86 100644
--- a/test/builtins/gen/textureNumLevels/2c3575.wgsl.expected.msl
+++ b/test/builtins/gen/textureNumLevels/2c3575.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureNumLevels_2c3575(depthcube_array<float, access::sample> tint_symbol_1) {
   int res = int(tint_symbol_1.get_num_mip_levels());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(depthcube_array<float, access::sample> tint_symbol_2) {
   textureNumLevels_2c3575(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureNumLevels/32a0ae.wgsl.expected.msl b/test/builtins/gen/textureNumLevels/32a0ae.wgsl.expected.msl
index 985edcb..9f66634 100644
--- a/test/builtins/gen/textureNumLevels/32a0ae.wgsl.expected.msl
+++ b/test/builtins/gen/textureNumLevels/32a0ae.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureNumLevels_32a0ae(texture1d<int, access::sample> tint_symbol_1) {
   int res = int(tint_symbol_1.get_num_mip_levels());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture1d<int, access::sample> tint_symbol_2) {
   textureNumLevels_32a0ae(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureNumLevels/5101cf.wgsl.expected.msl b/test/builtins/gen/textureNumLevels/5101cf.wgsl.expected.msl
index c675b3f..9f5a2eb 100644
--- a/test/builtins/gen/textureNumLevels/5101cf.wgsl.expected.msl
+++ b/test/builtins/gen/textureNumLevels/5101cf.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureNumLevels_5101cf(texture2d_array<uint, access::sample> tint_symbol_1) {
   int res = int(tint_symbol_1.get_num_mip_levels());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<uint, access::sample> tint_symbol_2) {
   textureNumLevels_5101cf(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureNumLevels/51b5bb.wgsl.expected.msl b/test/builtins/gen/textureNumLevels/51b5bb.wgsl.expected.msl
index c1bb13c..eac33e9 100644
--- a/test/builtins/gen/textureNumLevels/51b5bb.wgsl.expected.msl
+++ b/test/builtins/gen/textureNumLevels/51b5bb.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureNumLevels_51b5bb(texture1d<float, access::sample> tint_symbol_1) {
   int res = int(tint_symbol_1.get_num_mip_levels());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture1d<float, access::sample> tint_symbol_2) {
   textureNumLevels_51b5bb(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureNumLevels/897aaf.wgsl.expected.msl b/test/builtins/gen/textureNumLevels/897aaf.wgsl.expected.msl
index 2bf8904..90a35ee 100644
--- a/test/builtins/gen/textureNumLevels/897aaf.wgsl.expected.msl
+++ b/test/builtins/gen/textureNumLevels/897aaf.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureNumLevels_897aaf(texturecube<float, access::sample> tint_symbol_1) {
   int res = int(tint_symbol_1.get_num_mip_levels());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texturecube<float, access::sample> tint_symbol_2) {
   textureNumLevels_897aaf(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureNumLevels/9da7a5.wgsl.expected.msl b/test/builtins/gen/textureNumLevels/9da7a5.wgsl.expected.msl
index f079eea..7e8f856 100644
--- a/test/builtins/gen/textureNumLevels/9da7a5.wgsl.expected.msl
+++ b/test/builtins/gen/textureNumLevels/9da7a5.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureNumLevels_9da7a5(texture3d<int, access::sample> tint_symbol_1) {
   int res = int(tint_symbol_1.get_num_mip_levels());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture3d<int, access::sample> tint_symbol_2) {
   textureNumLevels_9da7a5(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureNumLevels/a91c03.wgsl.expected.msl b/test/builtins/gen/textureNumLevels/a91c03.wgsl.expected.msl
index 52ef85b..2a9faac 100644
--- a/test/builtins/gen/textureNumLevels/a91c03.wgsl.expected.msl
+++ b/test/builtins/gen/textureNumLevels/a91c03.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureNumLevels_a91c03(texturecube_array<int, access::sample> tint_symbol_1) {
   int res = int(tint_symbol_1.get_num_mip_levels());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texturecube_array<int, access::sample> tint_symbol_2) {
   textureNumLevels_a91c03(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureNumLevels/aee7c8.wgsl.expected.msl b/test/builtins/gen/textureNumLevels/aee7c8.wgsl.expected.msl
index 30353f3..0b5172c 100644
--- a/test/builtins/gen/textureNumLevels/aee7c8.wgsl.expected.msl
+++ b/test/builtins/gen/textureNumLevels/aee7c8.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureNumLevels_aee7c8(texturecube_array<float, access::sample> tint_symbol_1) {
   int res = int(tint_symbol_1.get_num_mip_levels());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texturecube_array<float, access::sample> tint_symbol_2) {
   textureNumLevels_aee7c8(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureNumLevels/b1b12b.wgsl.expected.msl b/test/builtins/gen/textureNumLevels/b1b12b.wgsl.expected.msl
index ecaa1cc..992a0ac 100644
--- a/test/builtins/gen/textureNumLevels/b1b12b.wgsl.expected.msl
+++ b/test/builtins/gen/textureNumLevels/b1b12b.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureNumLevels_b1b12b(depth2d<float, access::sample> tint_symbol_1) {
   int res = int(tint_symbol_1.get_num_mip_levels());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(depth2d<float, access::sample> tint_symbol_2) {
   textureNumLevels_b1b12b(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureNumLevels/b4f5ea.wgsl.expected.msl b/test/builtins/gen/textureNumLevels/b4f5ea.wgsl.expected.msl
index 13415a6..f355a6d 100644
--- a/test/builtins/gen/textureNumLevels/b4f5ea.wgsl.expected.msl
+++ b/test/builtins/gen/textureNumLevels/b4f5ea.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureNumLevels_b4f5ea(texture3d<uint, access::sample> tint_symbol_1) {
   int res = int(tint_symbol_1.get_num_mip_levels());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture3d<uint, access::sample> tint_symbol_2) {
   textureNumLevels_b4f5ea(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureNumLevels/d004a9.wgsl.expected.msl b/test/builtins/gen/textureNumLevels/d004a9.wgsl.expected.msl
index 6dc92ef..f3a4601 100644
--- a/test/builtins/gen/textureNumLevels/d004a9.wgsl.expected.msl
+++ b/test/builtins/gen/textureNumLevels/d004a9.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureNumLevels_d004a9(texture2d_array<int, access::sample> tint_symbol_1) {
   int res = int(tint_symbol_1.get_num_mip_levels());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<int, access::sample> tint_symbol_2) {
   textureNumLevels_d004a9(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureNumLevels/dca09e.wgsl.expected.msl b/test/builtins/gen/textureNumLevels/dca09e.wgsl.expected.msl
index b347341..2b06e6b 100644
--- a/test/builtins/gen/textureNumLevels/dca09e.wgsl.expected.msl
+++ b/test/builtins/gen/textureNumLevels/dca09e.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureNumLevels_dca09e(texture3d<float, access::sample> tint_symbol_1) {
   int res = int(tint_symbol_1.get_num_mip_levels());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture3d<float, access::sample> tint_symbol_2) {
   textureNumLevels_dca09e(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureNumLevels/e67231.wgsl.expected.msl b/test/builtins/gen/textureNumLevels/e67231.wgsl.expected.msl
index 2e89dbf..f4f23bc 100644
--- a/test/builtins/gen/textureNumLevels/e67231.wgsl.expected.msl
+++ b/test/builtins/gen/textureNumLevels/e67231.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureNumLevels_e67231(texture2d<float, access::sample> tint_symbol_1) {
   int res = int(tint_symbol_1.get_num_mip_levels());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<float, access::sample> tint_symbol_2) {
   textureNumLevels_e67231(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureNumLevels/ed078b.wgsl.expected.msl b/test/builtins/gen/textureNumLevels/ed078b.wgsl.expected.msl
index a3c75b1..65e9dac 100644
--- a/test/builtins/gen/textureNumLevels/ed078b.wgsl.expected.msl
+++ b/test/builtins/gen/textureNumLevels/ed078b.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureNumLevels_ed078b(texturecube<uint, access::sample> tint_symbol_1) {
   int res = int(tint_symbol_1.get_num_mip_levels());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texturecube<uint, access::sample> tint_symbol_2) {
   textureNumLevels_ed078b(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureNumLevels/f46ec6.wgsl.expected.msl b/test/builtins/gen/textureNumLevels/f46ec6.wgsl.expected.msl
index daa9048..64bd485 100644
--- a/test/builtins/gen/textureNumLevels/f46ec6.wgsl.expected.msl
+++ b/test/builtins/gen/textureNumLevels/f46ec6.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureNumLevels_f46ec6(texturecube_array<uint, access::sample> tint_symbol_1) {
   int res = int(tint_symbol_1.get_num_mip_levels());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texturecube_array<uint, access::sample> tint_symbol_2) {
   textureNumLevels_f46ec6(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureNumLevels/f5828d.wgsl.expected.msl b/test/builtins/gen/textureNumLevels/f5828d.wgsl.expected.msl
index 9a85d11..6c562b8 100644
--- a/test/builtins/gen/textureNumLevels/f5828d.wgsl.expected.msl
+++ b/test/builtins/gen/textureNumLevels/f5828d.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureNumLevels_f5828d(depth2d_array<float, access::sample> tint_symbol_1) {
   int res = int(tint_symbol_1.get_num_mip_levels());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(depth2d_array<float, access::sample> tint_symbol_2) {
   textureNumLevels_f5828d(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureNumSamples/2c6f14.wgsl.expected.msl b/test/builtins/gen/textureNumSamples/2c6f14.wgsl.expected.msl
index 9da173f..465294c 100644
--- a/test/builtins/gen/textureNumSamples/2c6f14.wgsl.expected.msl
+++ b/test/builtins/gen/textureNumSamples/2c6f14.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureNumSamples_2c6f14(texture2d_ms<float, access::read> tint_symbol_1) {
   int res = int(tint_symbol_1.get_num_samples());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_ms<float, access::read> tint_symbol_2) {
   textureNumSamples_2c6f14(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureNumSamples/42f8bb.wgsl.expected.msl b/test/builtins/gen/textureNumSamples/42f8bb.wgsl.expected.msl
index 520f484..77c2cc9 100644
--- a/test/builtins/gen/textureNumSamples/42f8bb.wgsl.expected.msl
+++ b/test/builtins/gen/textureNumSamples/42f8bb.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureNumSamples_42f8bb(texture2d_ms<uint, access::read> tint_symbol_1) {
   int res = int(tint_symbol_1.get_num_samples());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_ms<uint, access::read> tint_symbol_2) {
   textureNumSamples_42f8bb(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureNumSamples/449d23.wgsl.expected.msl b/test/builtins/gen/textureNumSamples/449d23.wgsl.expected.msl
index 7935aff..ef9c562 100644
--- a/test/builtins/gen/textureNumSamples/449d23.wgsl.expected.msl
+++ b/test/builtins/gen/textureNumSamples/449d23.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureNumSamples_449d23(texture2d_ms<int, access::read> tint_symbol_1) {
   int res = int(tint_symbol_1.get_num_samples());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_ms<int, access::read> tint_symbol_2) {
   textureNumSamples_449d23(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureNumSamples/a3c8a0.wgsl.expected.msl b/test/builtins/gen/textureNumSamples/a3c8a0.wgsl.expected.msl
index a5fbae4..011207a 100644
--- a/test/builtins/gen/textureNumSamples/a3c8a0.wgsl.expected.msl
+++ b/test/builtins/gen/textureNumSamples/a3c8a0.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureNumSamples_a3c8a0(depth2d_ms<float, access::read> tint_symbol_1) {
   int res = int(tint_symbol_1.get_num_samples());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(depth2d_ms<float, access::read> tint_symbol_2) {
   textureNumSamples_a3c8a0(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureSampleCompareLevel/011a8f.wgsl.expected.msl b/test/builtins/gen/textureSampleCompareLevel/011a8f.wgsl.expected.msl
index 73b0c18..07485ae 100644
--- a/test/builtins/gen/textureSampleCompareLevel/011a8f.wgsl.expected.msl
+++ b/test/builtins/gen/textureSampleCompareLevel/011a8f.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureSampleCompareLevel_011a8f(depth2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   float res = tint_symbol_1.sample_compare(tint_symbol_2, float2(), 1, 1.0f, level(0), int2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(depth2d_array<float, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureSampleCompareLevel_011a8f(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureSampleCompareLevel/1116ed.wgsl.expected.msl b/test/builtins/gen/textureSampleCompareLevel/1116ed.wgsl.expected.msl
index b60dcc0..afa4f78 100644
--- a/test/builtins/gen/textureSampleCompareLevel/1116ed.wgsl.expected.msl
+++ b/test/builtins/gen/textureSampleCompareLevel/1116ed.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureSampleCompareLevel_1116ed(depth2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   float res = tint_symbol_1.sample_compare(tint_symbol_2, float2(), 1, 1.0f, level(0));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(depth2d_array<float, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureSampleCompareLevel_1116ed(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureSampleCompareLevel/1568e3.wgsl.expected.msl b/test/builtins/gen/textureSampleCompareLevel/1568e3.wgsl.expected.msl
index f021d80..3c3babe 100644
--- a/test/builtins/gen/textureSampleCompareLevel/1568e3.wgsl.expected.msl
+++ b/test/builtins/gen/textureSampleCompareLevel/1568e3.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureSampleCompareLevel_1568e3(depthcube<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   float res = tint_symbol_1.sample_compare(tint_symbol_2, float3(), 1.0f, level(0));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(depthcube<float, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureSampleCompareLevel_1568e3(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureSampleCompareLevel/2ad2b1.wgsl.expected.msl b/test/builtins/gen/textureSampleCompareLevel/2ad2b1.wgsl.expected.msl
index 4697c85..0757bfe 100644
--- a/test/builtins/gen/textureSampleCompareLevel/2ad2b1.wgsl.expected.msl
+++ b/test/builtins/gen/textureSampleCompareLevel/2ad2b1.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureSampleCompareLevel_2ad2b1(depth2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   float res = tint_symbol_1.sample_compare(tint_symbol_2, float2(), 1.0f, level(0));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(depth2d<float, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureSampleCompareLevel_2ad2b1(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureSampleCompareLevel/4cf3a2.wgsl.expected.msl b/test/builtins/gen/textureSampleCompareLevel/4cf3a2.wgsl.expected.msl
index 7bef512..a2db2a9 100644
--- a/test/builtins/gen/textureSampleCompareLevel/4cf3a2.wgsl.expected.msl
+++ b/test/builtins/gen/textureSampleCompareLevel/4cf3a2.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureSampleCompareLevel_4cf3a2(depthcube_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   float res = tint_symbol_1.sample_compare(tint_symbol_2, float3(), 1, 1.0f, level(0));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(depthcube_array<float, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureSampleCompareLevel_4cf3a2(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureSampleCompareLevel/f8121c.wgsl.expected.msl b/test/builtins/gen/textureSampleCompareLevel/f8121c.wgsl.expected.msl
index d18e34c..c72e97b 100644
--- a/test/builtins/gen/textureSampleCompareLevel/f8121c.wgsl.expected.msl
+++ b/test/builtins/gen/textureSampleCompareLevel/f8121c.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureSampleCompareLevel_f8121c(depth2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   float res = tint_symbol_1.sample_compare(tint_symbol_2, float2(), 1.0f, level(0), int2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(depth2d<float, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureSampleCompareLevel_f8121c(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureSampleGrad/21402b.wgsl.expected.msl b/test/builtins/gen/textureSampleGrad/21402b.wgsl.expected.msl
index f44e7d5..611f192 100644
--- a/test/builtins/gen/textureSampleGrad/21402b.wgsl.expected.msl
+++ b/test/builtins/gen/textureSampleGrad/21402b.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureSampleGrad_21402b(texture3d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   float4 res = tint_symbol_1.sample(tint_symbol_2, float3(), gradient3d(float3(), float3()));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture3d<float, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureSampleGrad_21402b(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureSampleGrad/2ecd8f.wgsl.expected.msl b/test/builtins/gen/textureSampleGrad/2ecd8f.wgsl.expected.msl
index 8c63d94..cb35a40 100644
--- a/test/builtins/gen/textureSampleGrad/2ecd8f.wgsl.expected.msl
+++ b/test/builtins/gen/textureSampleGrad/2ecd8f.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureSampleGrad_2ecd8f(texture2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   float4 res = tint_symbol_1.sample(tint_symbol_2, float2(), 1, gradient2d(float2(), float2()));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<float, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureSampleGrad_2ecd8f(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureSampleGrad/468f88.wgsl.expected.msl b/test/builtins/gen/textureSampleGrad/468f88.wgsl.expected.msl
index 340a1f7..984039b 100644
--- a/test/builtins/gen/textureSampleGrad/468f88.wgsl.expected.msl
+++ b/test/builtins/gen/textureSampleGrad/468f88.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureSampleGrad_468f88(texture2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   float4 res = tint_symbol_1.sample(tint_symbol_2, float2(), gradient2d(float2(), float2()), int2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<float, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureSampleGrad_468f88(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureSampleGrad/521263.wgsl.expected.msl b/test/builtins/gen/textureSampleGrad/521263.wgsl.expected.msl
index a2da7c2..fdf1413 100644
--- a/test/builtins/gen/textureSampleGrad/521263.wgsl.expected.msl
+++ b/test/builtins/gen/textureSampleGrad/521263.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureSampleGrad_521263(texture2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   float4 res = tint_symbol_1.sample(tint_symbol_2, float2(), gradient2d(float2(), float2()));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<float, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureSampleGrad_521263(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureSampleGrad/5312f4.wgsl.expected.msl b/test/builtins/gen/textureSampleGrad/5312f4.wgsl.expected.msl
index ae5bec6..e76967f 100644
--- a/test/builtins/gen/textureSampleGrad/5312f4.wgsl.expected.msl
+++ b/test/builtins/gen/textureSampleGrad/5312f4.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureSampleGrad_5312f4(texturecube<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   float4 res = tint_symbol_1.sample(tint_symbol_2, float3(), gradientcube(float3(), float3()));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texturecube<float, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureSampleGrad_5312f4(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureSampleGrad/872f00.wgsl.expected.msl b/test/builtins/gen/textureSampleGrad/872f00.wgsl.expected.msl
index 5ed27aa..c4756df 100644
--- a/test/builtins/gen/textureSampleGrad/872f00.wgsl.expected.msl
+++ b/test/builtins/gen/textureSampleGrad/872f00.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureSampleGrad_872f00(texture2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   float4 res = tint_symbol_1.sample(tint_symbol_2, float2(), 1, gradient2d(float2(), float2()), int2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<float, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureSampleGrad_872f00(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureSampleGrad/e383db.wgsl.expected.msl b/test/builtins/gen/textureSampleGrad/e383db.wgsl.expected.msl
index 3cd832a..0df18f0 100644
--- a/test/builtins/gen/textureSampleGrad/e383db.wgsl.expected.msl
+++ b/test/builtins/gen/textureSampleGrad/e383db.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureSampleGrad_e383db(texturecube_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   float4 res = tint_symbol_1.sample(tint_symbol_2, float3(), 1, gradientcube(float3(), float3()));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texturecube_array<float, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureSampleGrad_e383db(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureSampleGrad/e9a2f7.wgsl.expected.msl b/test/builtins/gen/textureSampleGrad/e9a2f7.wgsl.expected.msl
index 8742f68..8c31911 100644
--- a/test/builtins/gen/textureSampleGrad/e9a2f7.wgsl.expected.msl
+++ b/test/builtins/gen/textureSampleGrad/e9a2f7.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureSampleGrad_e9a2f7(texture3d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   float4 res = tint_symbol_1.sample(tint_symbol_2, float3(), gradient3d(float3(), float3()), int3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture3d<float, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureSampleGrad_e9a2f7(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureSampleLevel/02be59.wgsl.expected.msl b/test/builtins/gen/textureSampleLevel/02be59.wgsl.expected.msl
index 5dd9b81..a8efa2b 100644
--- a/test/builtins/gen/textureSampleLevel/02be59.wgsl.expected.msl
+++ b/test/builtins/gen/textureSampleLevel/02be59.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureSampleLevel_02be59(depth2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   float res = tint_symbol_1.sample(tint_symbol_2, float2(), level(0));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(depth2d<float, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureSampleLevel_02be59(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureSampleLevel/0bdd9a.wgsl.expected.msl b/test/builtins/gen/textureSampleLevel/0bdd9a.wgsl.expected.msl
index 566e4dc..5250bb5 100644
--- a/test/builtins/gen/textureSampleLevel/0bdd9a.wgsl.expected.msl
+++ b/test/builtins/gen/textureSampleLevel/0bdd9a.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureSampleLevel_0bdd9a(texturecube_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   float4 res = tint_symbol_1.sample(tint_symbol_2, float3(), 1, level(1.0f));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texturecube_array<float, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureSampleLevel_0bdd9a(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureSampleLevel/1b0291.wgsl.expected.msl b/test/builtins/gen/textureSampleLevel/1b0291.wgsl.expected.msl
index 8af50d5..d169182 100644
--- a/test/builtins/gen/textureSampleLevel/1b0291.wgsl.expected.msl
+++ b/test/builtins/gen/textureSampleLevel/1b0291.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureSampleLevel_1b0291(depthcube<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   float res = tint_symbol_1.sample(tint_symbol_2, float3(), level(0));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(depthcube<float, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureSampleLevel_1b0291(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureSampleLevel/1bf73e.wgsl.expected.msl b/test/builtins/gen/textureSampleLevel/1bf73e.wgsl.expected.msl
index 7607d29..e792a86 100644
--- a/test/builtins/gen/textureSampleLevel/1bf73e.wgsl.expected.msl
+++ b/test/builtins/gen/textureSampleLevel/1bf73e.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureSampleLevel_1bf73e(depth2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   float res = tint_symbol_1.sample(tint_symbol_2, float2(), 1, level(0));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(depth2d_array<float, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureSampleLevel_1bf73e(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureSampleLevel/302be4.wgsl.expected.msl b/test/builtins/gen/textureSampleLevel/302be4.wgsl.expected.msl
index 025fb43..81fb6d9 100644
--- a/test/builtins/gen/textureSampleLevel/302be4.wgsl.expected.msl
+++ b/test/builtins/gen/textureSampleLevel/302be4.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureSampleLevel_302be4(texture2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   float4 res = tint_symbol_1.sample(tint_symbol_2, float2(), 1, level(1.0f));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<float, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureSampleLevel_302be4(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureSampleLevel/47daa4.wgsl.expected.msl b/test/builtins/gen/textureSampleLevel/47daa4.wgsl.expected.msl
index 542fdf1..932bcb3 100644
--- a/test/builtins/gen/textureSampleLevel/47daa4.wgsl.expected.msl
+++ b/test/builtins/gen/textureSampleLevel/47daa4.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureSampleLevel_47daa4(depth2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   float res = tint_symbol_1.sample(tint_symbol_2, float2(), level(0), int2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(depth2d<float, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureSampleLevel_47daa4(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureSampleLevel/690d95.wgsl.expected.msl b/test/builtins/gen/textureSampleLevel/690d95.wgsl.expected.msl
index 402c509..508a589 100644
--- a/test/builtins/gen/textureSampleLevel/690d95.wgsl.expected.msl
+++ b/test/builtins/gen/textureSampleLevel/690d95.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureSampleLevel_690d95(texture2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   float4 res = tint_symbol_1.sample(tint_symbol_2, float2(), level(1.0f), int2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<float, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureSampleLevel_690d95(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureSampleLevel/979816.wgsl.expected.msl b/test/builtins/gen/textureSampleLevel/979816.wgsl.expected.msl
index e002695..47e2da1 100644
--- a/test/builtins/gen/textureSampleLevel/979816.wgsl.expected.msl
+++ b/test/builtins/gen/textureSampleLevel/979816.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureSampleLevel_979816(texture2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   float4 res = tint_symbol_1.sample(tint_symbol_2, float2(), level(0.0f));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<float, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureSampleLevel_979816(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureSampleLevel/9bd37b.wgsl.expected.msl b/test/builtins/gen/textureSampleLevel/9bd37b.wgsl.expected.msl
index 2baa149..b1f5d43 100644
--- a/test/builtins/gen/textureSampleLevel/9bd37b.wgsl.expected.msl
+++ b/test/builtins/gen/textureSampleLevel/9bd37b.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureSampleLevel_9bd37b(texture3d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   float4 res = tint_symbol_1.sample(tint_symbol_2, float3(), level(1.0f), int3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture3d<float, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureSampleLevel_9bd37b(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureSampleLevel/a4af26.wgsl.expected.msl b/test/builtins/gen/textureSampleLevel/a4af26.wgsl.expected.msl
index c9d14ff..4fc39a8 100644
--- a/test/builtins/gen/textureSampleLevel/a4af26.wgsl.expected.msl
+++ b/test/builtins/gen/textureSampleLevel/a4af26.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureSampleLevel_a4af26(texture2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   float4 res = tint_symbol_1.sample(tint_symbol_2, float2(), 1, level(1.0f), int2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<float, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureSampleLevel_a4af26(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureSampleLevel/abfcc0.wgsl.expected.msl b/test/builtins/gen/textureSampleLevel/abfcc0.wgsl.expected.msl
index 601c19f..6bf2714 100644
--- a/test/builtins/gen/textureSampleLevel/abfcc0.wgsl.expected.msl
+++ b/test/builtins/gen/textureSampleLevel/abfcc0.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureSampleLevel_abfcc0(texture3d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   float4 res = tint_symbol_1.sample(tint_symbol_2, float3(), level(1.0f));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture3d<float, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureSampleLevel_abfcc0(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureSampleLevel/ae5e39.wgsl.expected.msl b/test/builtins/gen/textureSampleLevel/ae5e39.wgsl.expected.msl
index 0a54672..43f1b2b 100644
--- a/test/builtins/gen/textureSampleLevel/ae5e39.wgsl.expected.msl
+++ b/test/builtins/gen/textureSampleLevel/ae5e39.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureSampleLevel_ae5e39(depthcube_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   float res = tint_symbol_1.sample(tint_symbol_2, float3(), 1, level(0));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(depthcube_array<float, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureSampleLevel_ae5e39(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureSampleLevel/ba93b3.wgsl.expected.msl b/test/builtins/gen/textureSampleLevel/ba93b3.wgsl.expected.msl
index 0435ba3..411b77e 100644
--- a/test/builtins/gen/textureSampleLevel/ba93b3.wgsl.expected.msl
+++ b/test/builtins/gen/textureSampleLevel/ba93b3.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureSampleLevel_ba93b3(depth2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   float res = tint_symbol_1.sample(tint_symbol_2, float2(), 1, level(0), int2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(depth2d_array<float, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureSampleLevel_ba93b3(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureSampleLevel/c32df7.wgsl.expected.msl b/test/builtins/gen/textureSampleLevel/c32df7.wgsl.expected.msl
index d2bc371..0dccab6 100644
--- a/test/builtins/gen/textureSampleLevel/c32df7.wgsl.expected.msl
+++ b/test/builtins/gen/textureSampleLevel/c32df7.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureSampleLevel_c32df7(texturecube<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   float4 res = tint_symbol_1.sample(tint_symbol_2, float3(), level(1.0f));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texturecube<float, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureSampleLevel_c32df7(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureSampleLevel/c6aca6.wgsl.expected.msl b/test/builtins/gen/textureSampleLevel/c6aca6.wgsl.expected.msl
index a07b0ef..804b0eb 100644
--- a/test/builtins/gen/textureSampleLevel/c6aca6.wgsl.expected.msl
+++ b/test/builtins/gen/textureSampleLevel/c6aca6.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureSampleLevel_c6aca6(texture2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
   float4 res = tint_symbol_1.sample(tint_symbol_2, float2(), level(1.0f));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<float, access::sample> tint_symbol_3, sampler tint_symbol_4) {
   textureSampleLevel_c6aca6(tint_symbol_3, tint_symbol_4);
   return float4();
diff --git a/test/builtins/gen/textureStore/05ce15.wgsl.expected.msl b/test/builtins/gen/textureStore/05ce15.wgsl.expected.msl
index c041d58..96f17cc 100644
--- a/test/builtins/gen/textureStore/05ce15.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/05ce15.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_05ce15(texture2d<float, access::write> tint_symbol_1) {
   tint_symbol_1.write(float4(), uint2(int2()));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<float, access::write> tint_symbol_2) {
   textureStore_05ce15(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/064c7f.wgsl.expected.msl b/test/builtins/gen/textureStore/064c7f.wgsl.expected.msl
index 6f99242..7e40f3e 100644
--- a/test/builtins/gen/textureStore/064c7f.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/064c7f.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_064c7f(texture2d<float, access::write> tint_symbol_1) {
   tint_symbol_1.write(float4(), uint2(int2()));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<float, access::write> tint_symbol_2) {
   textureStore_064c7f(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/068641.wgsl.expected.msl b/test/builtins/gen/textureStore/068641.wgsl.expected.msl
index 4853ced..dc1bdc8 100644
--- a/test/builtins/gen/textureStore/068641.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/068641.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_068641(texture3d<uint, access::write> tint_symbol_1) {
   tint_symbol_1.write(uint4(), uint3(int3()));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture3d<uint, access::write> tint_symbol_2) {
   textureStore_068641(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/0af6b5.wgsl.expected.msl b/test/builtins/gen/textureStore/0af6b5.wgsl.expected.msl
index 1e3da7e..74b0941 100644
--- a/test/builtins/gen/textureStore/0af6b5.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/0af6b5.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_0af6b5(texture2d<float, access::write> tint_symbol_1) {
   tint_symbol_1.write(float4(), uint2(int2()));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<float, access::write> tint_symbol_2) {
   textureStore_0af6b5(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/0c3dff.wgsl.expected.msl b/test/builtins/gen/textureStore/0c3dff.wgsl.expected.msl
index e3cbd45..408f694 100644
--- a/test/builtins/gen/textureStore/0c3dff.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/0c3dff.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_0c3dff(texture2d<uint, access::write> tint_symbol_1) {
   tint_symbol_1.write(uint4(), uint2(int2()));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<uint, access::write> tint_symbol_2) {
   textureStore_0c3dff(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/102722.wgsl.expected.msl b/test/builtins/gen/textureStore/102722.wgsl.expected.msl
index 7857f9f..5846677 100644
--- a/test/builtins/gen/textureStore/102722.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/102722.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_102722(texture1d<uint, access::write> tint_symbol_1) {
   tint_symbol_1.write(uint4(), uint(1));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture1d<uint, access::write> tint_symbol_2) {
   textureStore_102722(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/1bbd08.wgsl.expected.msl b/test/builtins/gen/textureStore/1bbd08.wgsl.expected.msl
index dea867a..abc4ff0 100644
--- a/test/builtins/gen/textureStore/1bbd08.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/1bbd08.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_1bbd08(texture3d<float, access::write> tint_symbol_1) {
   tint_symbol_1.write(float4(), uint3(int3()));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture3d<float, access::write> tint_symbol_2) {
   textureStore_1bbd08(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/1c02e7.wgsl.expected.msl b/test/builtins/gen/textureStore/1c02e7.wgsl.expected.msl
index d4cfdf2..2f25bbf 100644
--- a/test/builtins/gen/textureStore/1c02e7.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/1c02e7.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_1c02e7(texture2d_array<int, access::write> tint_symbol_1) {
   tint_symbol_1.write(int4(), uint2(int2()), 1);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
   textureStore_1c02e7(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/22d955.wgsl.expected.msl b/test/builtins/gen/textureStore/22d955.wgsl.expected.msl
index ae923cf..41c9ba0 100644
--- a/test/builtins/gen/textureStore/22d955.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/22d955.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_22d955(texture2d_array<uint, access::write> tint_symbol_1) {
   tint_symbol_1.write(uint4(), uint2(int2()), 1);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
   textureStore_22d955(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/26bf70.wgsl.expected.msl b/test/builtins/gen/textureStore/26bf70.wgsl.expected.msl
index 9a6b102..b016d7f 100644
--- a/test/builtins/gen/textureStore/26bf70.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/26bf70.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_26bf70(texture2d<uint, access::write> tint_symbol_1) {
   tint_symbol_1.write(uint4(), uint2(int2()));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<uint, access::write> tint_symbol_2) {
   textureStore_26bf70(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/2796b4.wgsl.expected.msl b/test/builtins/gen/textureStore/2796b4.wgsl.expected.msl
index be3965b..4c31553 100644
--- a/test/builtins/gen/textureStore/2796b4.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/2796b4.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_2796b4(texture3d<int, access::write> tint_symbol_1) {
   tint_symbol_1.write(int4(), uint3(int3()));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture3d<int, access::write> tint_symbol_2) {
   textureStore_2796b4(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/2ac6c7.wgsl.expected.msl b/test/builtins/gen/textureStore/2ac6c7.wgsl.expected.msl
index 29ad314..5fb901b 100644
--- a/test/builtins/gen/textureStore/2ac6c7.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/2ac6c7.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_2ac6c7(texture1d<float, access::write> tint_symbol_1) {
   tint_symbol_1.write(float4(), uint(1));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture1d<float, access::write> tint_symbol_2) {
   textureStore_2ac6c7(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/2eb2a4.wgsl.expected.msl b/test/builtins/gen/textureStore/2eb2a4.wgsl.expected.msl
index 3fc966a..52eff0b 100644
--- a/test/builtins/gen/textureStore/2eb2a4.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/2eb2a4.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_2eb2a4(texture1d<uint, access::write> tint_symbol_1) {
   tint_symbol_1.write(uint4(), uint(1));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture1d<uint, access::write> tint_symbol_2) {
   textureStore_2eb2a4(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/2ed2a3.wgsl.expected.msl b/test/builtins/gen/textureStore/2ed2a3.wgsl.expected.msl
index 6e9b584..3f46f67 100644
--- a/test/builtins/gen/textureStore/2ed2a3.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/2ed2a3.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_2ed2a3(texture1d<float, access::write> tint_symbol_1) {
   tint_symbol_1.write(float4(), uint(1));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture1d<float, access::write> tint_symbol_2) {
   textureStore_2ed2a3(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/31745b.wgsl.expected.msl b/test/builtins/gen/textureStore/31745b.wgsl.expected.msl
index 5fad319..21a80b4 100644
--- a/test/builtins/gen/textureStore/31745b.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/31745b.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_31745b(texture2d<int, access::write> tint_symbol_1) {
   tint_symbol_1.write(int4(), uint2(int2()));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<int, access::write> tint_symbol_2) {
   textureStore_31745b(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/32f368.wgsl.expected.msl b/test/builtins/gen/textureStore/32f368.wgsl.expected.msl
index be3045e..869f74d 100644
--- a/test/builtins/gen/textureStore/32f368.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/32f368.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_32f368(texture2d_array<float, access::write> tint_symbol_1) {
   tint_symbol_1.write(float4(), uint2(int2()), 1);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
   textureStore_32f368(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/331aee.wgsl.expected.msl b/test/builtins/gen/textureStore/331aee.wgsl.expected.msl
index 62e62dd..aab61d3 100644
--- a/test/builtins/gen/textureStore/331aee.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/331aee.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_331aee(texture3d<float, access::write> tint_symbol_1) {
   tint_symbol_1.write(float4(), uint3(int3()));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture3d<float, access::write> tint_symbol_2) {
   textureStore_331aee(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/38e8d7.wgsl.expected.msl b/test/builtins/gen/textureStore/38e8d7.wgsl.expected.msl
index 0a7fa79..7b2b0f1 100644
--- a/test/builtins/gen/textureStore/38e8d7.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/38e8d7.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_38e8d7(texture2d_array<uint, access::write> tint_symbol_1) {
   tint_symbol_1.write(uint4(), uint2(int2()), 1);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
   textureStore_38e8d7(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/3a52ac.wgsl.expected.msl b/test/builtins/gen/textureStore/3a52ac.wgsl.expected.msl
index 22fa157..6dc9c94 100644
--- a/test/builtins/gen/textureStore/3a52ac.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/3a52ac.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_3a52ac(texture2d_array<int, access::write> tint_symbol_1) {
   tint_symbol_1.write(int4(), uint2(int2()), 1);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
   textureStore_3a52ac(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/3bb7a1.wgsl.expected.msl b/test/builtins/gen/textureStore/3bb7a1.wgsl.expected.msl
index 8f2e7cf..d3dcf83 100644
--- a/test/builtins/gen/textureStore/3bb7a1.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/3bb7a1.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_3bb7a1(texture2d_array<float, access::write> tint_symbol_1) {
   tint_symbol_1.write(float4(), uint2(int2()), 1);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
   textureStore_3bb7a1(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/3bec15.wgsl.expected.msl b/test/builtins/gen/textureStore/3bec15.wgsl.expected.msl
index 3364232..63deae2 100644
--- a/test/builtins/gen/textureStore/3bec15.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/3bec15.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_3bec15(texture1d<uint, access::write> tint_symbol_1) {
   tint_symbol_1.write(uint4(), uint(1));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture1d<uint, access::write> tint_symbol_2) {
   textureStore_3bec15(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/441ba8.wgsl.expected.msl b/test/builtins/gen/textureStore/441ba8.wgsl.expected.msl
index 2f99fdf..ddd88f9 100644
--- a/test/builtins/gen/textureStore/441ba8.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/441ba8.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_441ba8(texture3d<uint, access::write> tint_symbol_1) {
   tint_symbol_1.write(uint4(), uint3(int3()));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture3d<uint, access::write> tint_symbol_2) {
   textureStore_441ba8(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/4fc057.wgsl.expected.msl b/test/builtins/gen/textureStore/4fc057.wgsl.expected.msl
index 631009a..73b2de8 100644
--- a/test/builtins/gen/textureStore/4fc057.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/4fc057.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_4fc057(texture2d_array<float, access::write> tint_symbol_1) {
   tint_symbol_1.write(float4(), uint2(int2()), 1);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
   textureStore_4fc057(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/5a2f8f.wgsl.expected.msl b/test/builtins/gen/textureStore/5a2f8f.wgsl.expected.msl
index fdbd1c5..a1a8470 100644
--- a/test/builtins/gen/textureStore/5a2f8f.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/5a2f8f.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_5a2f8f(texture1d<int, access::write> tint_symbol_1) {
   tint_symbol_1.write(int4(), uint(1));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture1d<int, access::write> tint_symbol_2) {
   textureStore_5a2f8f(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/60975f.wgsl.expected.msl b/test/builtins/gen/textureStore/60975f.wgsl.expected.msl
index e9e4275..38bf10c 100644
--- a/test/builtins/gen/textureStore/60975f.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/60975f.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_60975f(texture2d_array<float, access::write> tint_symbol_1) {
   tint_symbol_1.write(float4(), uint2(int2()), 1);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
   textureStore_60975f(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/682fd6.wgsl.expected.msl b/test/builtins/gen/textureStore/682fd6.wgsl.expected.msl
index 457dcff..592b20f 100644
--- a/test/builtins/gen/textureStore/682fd6.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/682fd6.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_682fd6(texture2d<uint, access::write> tint_symbol_1) {
   tint_symbol_1.write(uint4(), uint2(int2()));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<uint, access::write> tint_symbol_2) {
   textureStore_682fd6(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/6b75c3.wgsl.expected.msl b/test/builtins/gen/textureStore/6b75c3.wgsl.expected.msl
index 457a6b2..7f987b2 100644
--- a/test/builtins/gen/textureStore/6b75c3.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/6b75c3.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_6b75c3(texture1d<float, access::write> tint_symbol_1) {
   tint_symbol_1.write(float4(), uint(1));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture1d<float, access::write> tint_symbol_2) {
   textureStore_6b75c3(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/6b80d2.wgsl.expected.msl b/test/builtins/gen/textureStore/6b80d2.wgsl.expected.msl
index fa97d97..5db31c8 100644
--- a/test/builtins/gen/textureStore/6b80d2.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/6b80d2.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_6b80d2(texture1d<int, access::write> tint_symbol_1) {
   tint_symbol_1.write(int4(), uint(1));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture1d<int, access::write> tint_symbol_2) {
   textureStore_6b80d2(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/6cff2e.wgsl.expected.msl b/test/builtins/gen/textureStore/6cff2e.wgsl.expected.msl
index 1653c87..b086eed 100644
--- a/test/builtins/gen/textureStore/6cff2e.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/6cff2e.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_6cff2e(texture2d<uint, access::write> tint_symbol_1) {
   tint_symbol_1.write(uint4(), uint2(int2()));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<uint, access::write> tint_symbol_2) {
   textureStore_6cff2e(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/6da692.wgsl.expected.msl b/test/builtins/gen/textureStore/6da692.wgsl.expected.msl
index ac4c507..a83fda7 100644
--- a/test/builtins/gen/textureStore/6da692.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/6da692.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_6da692(texture2d_array<uint, access::write> tint_symbol_1) {
   tint_symbol_1.write(uint4(), uint2(int2()), 1);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
   textureStore_6da692(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/731349.wgsl.expected.msl b/test/builtins/gen/textureStore/731349.wgsl.expected.msl
index 29ceabc..2346b59 100644
--- a/test/builtins/gen/textureStore/731349.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/731349.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_731349(texture2d<float, access::write> tint_symbol_1) {
   tint_symbol_1.write(float4(), uint2(int2()));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<float, access::write> tint_symbol_2) {
   textureStore_731349(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/752da6.wgsl.expected.msl b/test/builtins/gen/textureStore/752da6.wgsl.expected.msl
index 999bc50..3c4ff0b 100644
--- a/test/builtins/gen/textureStore/752da6.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/752da6.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_752da6(texture2d<int, access::write> tint_symbol_1) {
   tint_symbol_1.write(int4(), uint2(int2()));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<int, access::write> tint_symbol_2) {
   textureStore_752da6(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/77c0ae.wgsl.expected.msl b/test/builtins/gen/textureStore/77c0ae.wgsl.expected.msl
index de193a5..051bd4e 100644
--- a/test/builtins/gen/textureStore/77c0ae.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/77c0ae.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_77c0ae(texture2d<uint, access::write> tint_symbol_1) {
   tint_symbol_1.write(uint4(), uint2(int2()));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<uint, access::write> tint_symbol_2) {
   textureStore_77c0ae(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/7cec8d.wgsl.expected.msl b/test/builtins/gen/textureStore/7cec8d.wgsl.expected.msl
index 5b1c950..00250f3 100644
--- a/test/builtins/gen/textureStore/7cec8d.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/7cec8d.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_7cec8d(texture2d_array<int, access::write> tint_symbol_1) {
   tint_symbol_1.write(int4(), uint2(int2()), 1);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
   textureStore_7cec8d(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/7f7fae.wgsl.expected.msl b/test/builtins/gen/textureStore/7f7fae.wgsl.expected.msl
index b1482ce..8b11e38 100644
--- a/test/builtins/gen/textureStore/7f7fae.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/7f7fae.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_7f7fae(texture1d<float, access::write> tint_symbol_1) {
   tint_symbol_1.write(float4(), uint(1));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture1d<float, access::write> tint_symbol_2) {
   textureStore_7f7fae(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/804942.wgsl.expected.msl b/test/builtins/gen/textureStore/804942.wgsl.expected.msl
index e58994e..df25a32 100644
--- a/test/builtins/gen/textureStore/804942.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/804942.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_804942(texture2d<int, access::write> tint_symbol_1) {
   tint_symbol_1.write(int4(), uint2(int2()));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<int, access::write> tint_symbol_2) {
   textureStore_804942(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/805dae.wgsl.expected.msl b/test/builtins/gen/textureStore/805dae.wgsl.expected.msl
index d8fa594..bd51b5a 100644
--- a/test/builtins/gen/textureStore/805dae.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/805dae.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_805dae(texture2d<float, access::write> tint_symbol_1) {
   tint_symbol_1.write(float4(), uint2(int2()));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<float, access::write> tint_symbol_2) {
   textureStore_805dae(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/83bcc1.wgsl.expected.msl b/test/builtins/gen/textureStore/83bcc1.wgsl.expected.msl
index ac927b7..f0be4b0 100644
--- a/test/builtins/gen/textureStore/83bcc1.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/83bcc1.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_83bcc1(texture1d<uint, access::write> tint_symbol_1) {
   tint_symbol_1.write(uint4(), uint(1));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture1d<uint, access::write> tint_symbol_2) {
   textureStore_83bcc1(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/872747.wgsl.expected.msl b/test/builtins/gen/textureStore/872747.wgsl.expected.msl
index 4cdef4d..916a2be 100644
--- a/test/builtins/gen/textureStore/872747.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/872747.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_872747(texture1d<float, access::write> tint_symbol_1) {
   tint_symbol_1.write(float4(), uint(1));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture1d<float, access::write> tint_symbol_2) {
   textureStore_872747(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/8e0479.wgsl.expected.msl b/test/builtins/gen/textureStore/8e0479.wgsl.expected.msl
index afda699..b7b344b 100644
--- a/test/builtins/gen/textureStore/8e0479.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/8e0479.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_8e0479(texture2d_array<uint, access::write> tint_symbol_1) {
   tint_symbol_1.write(uint4(), uint2(int2()), 1);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
   textureStore_8e0479(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/8f71a1.wgsl.expected.msl b/test/builtins/gen/textureStore/8f71a1.wgsl.expected.msl
index 9070535..097f768 100644
--- a/test/builtins/gen/textureStore/8f71a1.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/8f71a1.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_8f71a1(texture3d<int, access::write> tint_symbol_1) {
   tint_symbol_1.write(int4(), uint3(int3()));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture3d<int, access::write> tint_symbol_2) {
   textureStore_8f71a1(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/969534.wgsl.expected.msl b/test/builtins/gen/textureStore/969534.wgsl.expected.msl
index 9ff764b..9792266 100644
--- a/test/builtins/gen/textureStore/969534.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/969534.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_969534(texture1d<int, access::write> tint_symbol_1) {
   tint_symbol_1.write(int4(), uint(1));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture1d<int, access::write> tint_symbol_2) {
   textureStore_969534(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/9a3ecc.wgsl.expected.msl b/test/builtins/gen/textureStore/9a3ecc.wgsl.expected.msl
index 09a9db9..7977030 100644
--- a/test/builtins/gen/textureStore/9a3ecc.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/9a3ecc.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_9a3ecc(texture3d<int, access::write> tint_symbol_1) {
   tint_symbol_1.write(int4(), uint3(int3()));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture3d<int, access::write> tint_symbol_2) {
   textureStore_9a3ecc(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/9d9cd5.wgsl.expected.msl b/test/builtins/gen/textureStore/9d9cd5.wgsl.expected.msl
index e08d4a1..6e704ca 100644
--- a/test/builtins/gen/textureStore/9d9cd5.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/9d9cd5.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_9d9cd5(texture2d_array<float, access::write> tint_symbol_1) {
   tint_symbol_1.write(float4(), uint2(int2()), 1);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
   textureStore_9d9cd5(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/9e3ec5.wgsl.expected.msl b/test/builtins/gen/textureStore/9e3ec5.wgsl.expected.msl
index d08f76d..9bdfb7a 100644
--- a/test/builtins/gen/textureStore/9e3ec5.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/9e3ec5.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_9e3ec5(texture2d<int, access::write> tint_symbol_1) {
   tint_symbol_1.write(int4(), uint2(int2()));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<int, access::write> tint_symbol_2) {
   textureStore_9e3ec5(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/ac67aa.wgsl.expected.msl b/test/builtins/gen/textureStore/ac67aa.wgsl.expected.msl
index 47a142d..f61229e 100644
--- a/test/builtins/gen/textureStore/ac67aa.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/ac67aa.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_ac67aa(texture3d<uint, access::write> tint_symbol_1) {
   tint_symbol_1.write(uint4(), uint3(int3()));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture3d<uint, access::write> tint_symbol_2) {
   textureStore_ac67aa(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/b706b1.wgsl.expected.msl b/test/builtins/gen/textureStore/b706b1.wgsl.expected.msl
index 9d9c3f7..a28cf35 100644
--- a/test/builtins/gen/textureStore/b706b1.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/b706b1.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_b706b1(texture3d<int, access::write> tint_symbol_1) {
   tint_symbol_1.write(int4(), uint3(int3()));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture3d<int, access::write> tint_symbol_2) {
   textureStore_b706b1(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/bbcb7f.wgsl.expected.msl b/test/builtins/gen/textureStore/bbcb7f.wgsl.expected.msl
index 4e92cd5..8eff861 100644
--- a/test/builtins/gen/textureStore/bbcb7f.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/bbcb7f.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_bbcb7f(texture2d<int, access::write> tint_symbol_1) {
   tint_symbol_1.write(int4(), uint2(int2()));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<int, access::write> tint_symbol_2) {
   textureStore_bbcb7f(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/be6e30.wgsl.expected.msl b/test/builtins/gen/textureStore/be6e30.wgsl.expected.msl
index a5e126d..5ed9b5f 100644
--- a/test/builtins/gen/textureStore/be6e30.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/be6e30.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_be6e30(texture2d<float, access::write> tint_symbol_1) {
   tint_symbol_1.write(float4(), uint2(int2()));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d<float, access::write> tint_symbol_2) {
   textureStore_be6e30(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/bf775c.wgsl.expected.msl b/test/builtins/gen/textureStore/bf775c.wgsl.expected.msl
index bbd28ed..d722999 100644
--- a/test/builtins/gen/textureStore/bf775c.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/bf775c.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_bf775c(texture1d<int, access::write> tint_symbol_1) {
   tint_symbol_1.write(int4(), uint(1));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture1d<int, access::write> tint_symbol_2) {
   textureStore_bf775c(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/c5af1e.wgsl.expected.msl b/test/builtins/gen/textureStore/c5af1e.wgsl.expected.msl
index 220943d..2ed8fe7 100644
--- a/test/builtins/gen/textureStore/c5af1e.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/c5af1e.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_c5af1e(texture3d<float, access::write> tint_symbol_1) {
   tint_symbol_1.write(float4(), uint3(int3()));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture3d<float, access::write> tint_symbol_2) {
   textureStore_c5af1e(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/c863be.wgsl.expected.msl b/test/builtins/gen/textureStore/c863be.wgsl.expected.msl
index e55e2c4..cea5b8e 100644
--- a/test/builtins/gen/textureStore/c863be.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/c863be.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_c863be(texture2d_array<float, access::write> tint_symbol_1) {
   tint_symbol_1.write(float4(), uint2(int2()), 1);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<float, access::write> tint_symbol_2) {
   textureStore_c863be(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/d73b5c.wgsl.expected.msl b/test/builtins/gen/textureStore/d73b5c.wgsl.expected.msl
index e41c439..44ed0f4 100644
--- a/test/builtins/gen/textureStore/d73b5c.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/d73b5c.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_d73b5c(texture1d<int, access::write> tint_symbol_1) {
   tint_symbol_1.write(int4(), uint(1));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture1d<int, access::write> tint_symbol_2) {
   textureStore_d73b5c(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/dd7d81.wgsl.expected.msl b/test/builtins/gen/textureStore/dd7d81.wgsl.expected.msl
index 3e39038..13e19b4 100644
--- a/test/builtins/gen/textureStore/dd7d81.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/dd7d81.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_dd7d81(texture3d<float, access::write> tint_symbol_1) {
   tint_symbol_1.write(float4(), uint3(int3()));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture3d<float, access::write> tint_symbol_2) {
   textureStore_dd7d81(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/dde364.wgsl.expected.msl b/test/builtins/gen/textureStore/dde364.wgsl.expected.msl
index 115e7ab..bf69fde 100644
--- a/test/builtins/gen/textureStore/dde364.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/dde364.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_dde364(texture2d_array<uint, access::write> tint_symbol_1) {
   tint_symbol_1.write(uint4(), uint2(int2()), 1);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<uint, access::write> tint_symbol_2) {
   textureStore_dde364(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/e885e8.wgsl.expected.msl b/test/builtins/gen/textureStore/e885e8.wgsl.expected.msl
index 8ef1a12..b69dd1b 100644
--- a/test/builtins/gen/textureStore/e885e8.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/e885e8.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_e885e8(texture1d<float, access::write> tint_symbol_1) {
   tint_symbol_1.write(float4(), uint(1));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture1d<float, access::write> tint_symbol_2) {
   textureStore_e885e8(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/eb702f.wgsl.expected.msl b/test/builtins/gen/textureStore/eb702f.wgsl.expected.msl
index 41d7c7f..3265301 100644
--- a/test/builtins/gen/textureStore/eb702f.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/eb702f.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_eb702f(texture3d<float, access::write> tint_symbol_1) {
   tint_symbol_1.write(float4(), uint3(int3()));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture3d<float, access::write> tint_symbol_2) {
   textureStore_eb702f(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/eb78b9.wgsl.expected.msl b/test/builtins/gen/textureStore/eb78b9.wgsl.expected.msl
index c96a6be..f5956b7 100644
--- a/test/builtins/gen/textureStore/eb78b9.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/eb78b9.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_eb78b9(texture3d<int, access::write> tint_symbol_1) {
   tint_symbol_1.write(int4(), uint3(int3()));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture3d<int, access::write> tint_symbol_2) {
   textureStore_eb78b9(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/ee6acc.wgsl.expected.msl b/test/builtins/gen/textureStore/ee6acc.wgsl.expected.msl
index ff1b337..e2577ea 100644
--- a/test/builtins/gen/textureStore/ee6acc.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/ee6acc.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_ee6acc(texture3d<float, access::write> tint_symbol_1) {
   tint_symbol_1.write(float4(), uint3(int3()));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture3d<float, access::write> tint_symbol_2) {
   textureStore_ee6acc(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/ef9f2f.wgsl.expected.msl b/test/builtins/gen/textureStore/ef9f2f.wgsl.expected.msl
index ea717de..28b42e6 100644
--- a/test/builtins/gen/textureStore/ef9f2f.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/ef9f2f.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_ef9f2f(texture3d<uint, access::write> tint_symbol_1) {
   tint_symbol_1.write(uint4(), uint3(int3()));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture3d<uint, access::write> tint_symbol_2) {
   textureStore_ef9f2f(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/f8dead.wgsl.expected.msl b/test/builtins/gen/textureStore/f8dead.wgsl.expected.msl
index 86b857a..35885fa 100644
--- a/test/builtins/gen/textureStore/f8dead.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/f8dead.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_f8dead(texture3d<uint, access::write> tint_symbol_1) {
   tint_symbol_1.write(uint4(), uint3(int3()));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture3d<uint, access::write> tint_symbol_2) {
   textureStore_f8dead(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/f9be83.wgsl.expected.msl b/test/builtins/gen/textureStore/f9be83.wgsl.expected.msl
index c8bb94f..04178a6 100644
--- a/test/builtins/gen/textureStore/f9be83.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/f9be83.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_f9be83(texture2d_array<int, access::write> tint_symbol_1) {
   tint_symbol_1.write(int4(), uint2(int2()), 1);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
   textureStore_f9be83(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/fb9a8f.wgsl.expected.msl b/test/builtins/gen/textureStore/fb9a8f.wgsl.expected.msl
index ee37f34..0522eb9 100644
--- a/test/builtins/gen/textureStore/fb9a8f.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/fb9a8f.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_fb9a8f(texture1d<uint, access::write> tint_symbol_1) {
   tint_symbol_1.write(uint4(), uint(1));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture1d<uint, access::write> tint_symbol_2) {
   textureStore_fb9a8f(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/textureStore/fbf53f.wgsl.expected.msl b/test/builtins/gen/textureStore/fbf53f.wgsl.expected.msl
index 68b5283..3b9a0e6 100644
--- a/test/builtins/gen/textureStore/fbf53f.wgsl.expected.msl
+++ b/test/builtins/gen/textureStore/fbf53f.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void textureStore_fbf53f(texture2d_array<int, access::write> tint_symbol_1) {
   tint_symbol_1.write(int4(), uint2(int2()), 1);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner(texture2d_array<int, access::write> tint_symbol_2) {
   textureStore_fbf53f(tint_symbol_2);
   return float4();
diff --git a/test/builtins/gen/transpose/2585cd.wgsl.expected.msl b/test/builtins/gen/transpose/2585cd.wgsl.expected.msl
index b3b56c8..bd0aea8 100644
--- a/test/builtins/gen/transpose/2585cd.wgsl.expected.msl
+++ b/test/builtins/gen/transpose/2585cd.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void transpose_2585cd() {
   float3x4 res = transpose(float4x3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   transpose_2585cd();
   return float4();
diff --git a/test/builtins/gen/transpose/31d679.wgsl.expected.msl b/test/builtins/gen/transpose/31d679.wgsl.expected.msl
index 6e589ed..37161be 100644
--- a/test/builtins/gen/transpose/31d679.wgsl.expected.msl
+++ b/test/builtins/gen/transpose/31d679.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void transpose_31d679() {
   float2x2 res = transpose(float2x2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   transpose_31d679();
   return float4();
diff --git a/test/builtins/gen/transpose/31e37e.wgsl.expected.msl b/test/builtins/gen/transpose/31e37e.wgsl.expected.msl
index e0fd198..393d1c2 100644
--- a/test/builtins/gen/transpose/31e37e.wgsl.expected.msl
+++ b/test/builtins/gen/transpose/31e37e.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void transpose_31e37e() {
   float2x4 res = transpose(float4x2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   transpose_31e37e();
   return float4();
diff --git a/test/builtins/gen/transpose/4ce359.wgsl.expected.msl b/test/builtins/gen/transpose/4ce359.wgsl.expected.msl
index 84d1993..6f191fc 100644
--- a/test/builtins/gen/transpose/4ce359.wgsl.expected.msl
+++ b/test/builtins/gen/transpose/4ce359.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void transpose_4ce359() {
   float4x2 res = transpose(float2x4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   transpose_4ce359();
   return float4();
diff --git a/test/builtins/gen/transpose/4dc9a1.wgsl.expected.msl b/test/builtins/gen/transpose/4dc9a1.wgsl.expected.msl
index b26fea1..758e404 100644
--- a/test/builtins/gen/transpose/4dc9a1.wgsl.expected.msl
+++ b/test/builtins/gen/transpose/4dc9a1.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void transpose_4dc9a1() {
   float3x2 res = transpose(float2x3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   transpose_4dc9a1();
   return float4();
diff --git a/test/builtins/gen/transpose/854336.wgsl.expected.msl b/test/builtins/gen/transpose/854336.wgsl.expected.msl
index 745cc68..f541c74 100644
--- a/test/builtins/gen/transpose/854336.wgsl.expected.msl
+++ b/test/builtins/gen/transpose/854336.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void transpose_854336() {
   float3x3 res = transpose(float3x3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   transpose_854336();
   return float4();
diff --git a/test/builtins/gen/transpose/c1b600.wgsl.expected.msl b/test/builtins/gen/transpose/c1b600.wgsl.expected.msl
index df99578..b1c7ea4 100644
--- a/test/builtins/gen/transpose/c1b600.wgsl.expected.msl
+++ b/test/builtins/gen/transpose/c1b600.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void transpose_c1b600() {
   float4x4 res = transpose(float4x4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   transpose_c1b600();
   return float4();
diff --git a/test/builtins/gen/transpose/d8f8ba.wgsl.expected.msl b/test/builtins/gen/transpose/d8f8ba.wgsl.expected.msl
index fd5a36f..c0fe7fe 100644
--- a/test/builtins/gen/transpose/d8f8ba.wgsl.expected.msl
+++ b/test/builtins/gen/transpose/d8f8ba.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void transpose_d8f8ba() {
   float4x3 res = transpose(float3x4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   transpose_d8f8ba();
   return float4();
diff --git a/test/builtins/gen/transpose/ed4bdc.wgsl.expected.msl b/test/builtins/gen/transpose/ed4bdc.wgsl.expected.msl
index 5952069..3b4dfac 100644
--- a/test/builtins/gen/transpose/ed4bdc.wgsl.expected.msl
+++ b/test/builtins/gen/transpose/ed4bdc.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void transpose_ed4bdc() {
   float2x3 res = transpose(float3x2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   transpose_ed4bdc();
   return float4();
diff --git a/test/builtins/gen/trunc/562d05.wgsl.expected.msl b/test/builtins/gen/trunc/562d05.wgsl.expected.msl
index 75d45ac..491d587 100644
--- a/test/builtins/gen/trunc/562d05.wgsl.expected.msl
+++ b/test/builtins/gen/trunc/562d05.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void trunc_562d05() {
   float3 res = trunc(float3());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   trunc_562d05();
   return float4();
diff --git a/test/builtins/gen/trunc/e183aa.wgsl.expected.msl b/test/builtins/gen/trunc/e183aa.wgsl.expected.msl
index b6fb817..3e8d78d 100644
--- a/test/builtins/gen/trunc/e183aa.wgsl.expected.msl
+++ b/test/builtins/gen/trunc/e183aa.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void trunc_e183aa() {
   float4 res = trunc(float4());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   trunc_e183aa();
   return float4();
diff --git a/test/builtins/gen/trunc/eb83df.wgsl.expected.msl b/test/builtins/gen/trunc/eb83df.wgsl.expected.msl
index 5e95102..950182f 100644
--- a/test/builtins/gen/trunc/eb83df.wgsl.expected.msl
+++ b/test/builtins/gen/trunc/eb83df.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void trunc_eb83df() {
   float res = trunc(1.0f);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   trunc_eb83df();
   return float4();
diff --git a/test/builtins/gen/trunc/f370d3.wgsl.expected.msl b/test/builtins/gen/trunc/f370d3.wgsl.expected.msl
index da0192f..aa5a099 100644
--- a/test/builtins/gen/trunc/f370d3.wgsl.expected.msl
+++ b/test/builtins/gen/trunc/f370d3.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void trunc_f370d3() {
   float2 res = trunc(float2());
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   trunc_f370d3();
   return float4();
diff --git a/test/builtins/gen/unpack2x16float/32a5cf.wgsl.expected.msl b/test/builtins/gen/unpack2x16float/32a5cf.wgsl.expected.msl
index 780a847..ba41cd6 100644
--- a/test/builtins/gen/unpack2x16float/32a5cf.wgsl.expected.msl
+++ b/test/builtins/gen/unpack2x16float/32a5cf.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void unpack2x16float_32a5cf() {
   float2 res = float2(as_type<half2>(1u));
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   unpack2x16float_32a5cf();
   return float4();
diff --git a/test/builtins/gen/unpack2x16snorm/b4aea6.wgsl.expected.msl b/test/builtins/gen/unpack2x16snorm/b4aea6.wgsl.expected.msl
index 4b72608..03a4ab6 100644
--- a/test/builtins/gen/unpack2x16snorm/b4aea6.wgsl.expected.msl
+++ b/test/builtins/gen/unpack2x16snorm/b4aea6.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void unpack2x16snorm_b4aea6() {
   float2 res = unpack_snorm2x16_to_float(1u);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   unpack2x16snorm_b4aea6();
   return float4();
diff --git a/test/builtins/gen/unpack2x16unorm/7699c0.wgsl.expected.msl b/test/builtins/gen/unpack2x16unorm/7699c0.wgsl.expected.msl
index c4eba4e..fda9e15 100644
--- a/test/builtins/gen/unpack2x16unorm/7699c0.wgsl.expected.msl
+++ b/test/builtins/gen/unpack2x16unorm/7699c0.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void unpack2x16unorm_7699c0() {
   float2 res = unpack_unorm2x16_to_float(1u);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   unpack2x16unorm_7699c0();
   return float4();
diff --git a/test/builtins/gen/unpack4x8snorm/523fb3.wgsl.expected.msl b/test/builtins/gen/unpack4x8snorm/523fb3.wgsl.expected.msl
index e3e1244..9235de2 100644
--- a/test/builtins/gen/unpack4x8snorm/523fb3.wgsl.expected.msl
+++ b/test/builtins/gen/unpack4x8snorm/523fb3.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void unpack4x8snorm_523fb3() {
   float4 res = unpack_snorm4x8_to_float(1u);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   unpack4x8snorm_523fb3();
   return float4();
diff --git a/test/builtins/gen/unpack4x8unorm/750c74.wgsl.expected.msl b/test/builtins/gen/unpack4x8unorm/750c74.wgsl.expected.msl
index e05632d..cc5cd0a 100644
--- a/test/builtins/gen/unpack4x8unorm/750c74.wgsl.expected.msl
+++ b/test/builtins/gen/unpack4x8unorm/750c74.wgsl.expected.msl
@@ -1,14 +1,14 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
 void unpack4x8unorm_750c74() {
   float4 res = unpack_unorm4x8_to_float(1u);
 }
 
+struct tint_symbol {
+  float4 value [[position]];
+};
+
 float4 vertex_main_inner() {
   unpack4x8unorm_750c74();
   return float4();
diff --git a/test/builtins/textureDimensions/depth_ms.spvasm.expected.msl b/test/builtins/textureDimensions/depth_ms.spvasm.expected.msl
index f615d7a..670bd01 100644
--- a/test/builtins/textureDimensions/depth_ms.spvasm.expected.msl
+++ b/test/builtins/textureDimensions/depth_ms.spvasm.expected.msl
@@ -1,13 +1,6 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct vertex_main_out {
-  float4 tint_symbol_1_1;
-};
-struct tint_symbol_3 {
-  float4 tint_symbol_1_1 [[position]];
-};
-
 void textureDimensions_f60bdb(depth2d_ms<float, access::read> tint_symbol_5) {
   int2 res = int2();
   int2 const x_16 = int2(int2(tint_symbol_5.get_width(), tint_symbol_5.get_height()));
@@ -26,6 +19,14 @@
   return;
 }
 
+struct vertex_main_out {
+  float4 tint_symbol_1_1;
+};
+
+struct tint_symbol_3 {
+  float4 tint_symbol_1_1 [[position]];
+};
+
 vertex_main_out vertex_main_inner(depth2d_ms<float, access::read> tint_symbol_9, thread float4* const tint_symbol_10) {
   vertex_main_1(tint_symbol_9, tint_symbol_10);
   vertex_main_out const tint_symbol_4 = {.tint_symbol_1_1=*(tint_symbol_10)};
diff --git a/test/builtins/textureLoad/depth_ms.spvasm.expected.msl b/test/builtins/textureLoad/depth_ms.spvasm.expected.msl
index acbe9b1..072549d 100644
--- a/test/builtins/textureLoad/depth_ms.spvasm.expected.msl
+++ b/test/builtins/textureLoad/depth_ms.spvasm.expected.msl
@@ -1,13 +1,6 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct vertex_main_out {
-  float4 tint_symbol_1_1;
-};
-struct tint_symbol_3 {
-  float4 tint_symbol_1_1 [[position]];
-};
-
 void textureLoad_6273b1(depth2d_ms<float, access::read> tint_symbol_5) {
   float res = 0.0f;
   float4 const x_17 = float4(tint_symbol_5.read(uint2(int2()), 1), 0.0f, 0.0f, 0.0f);
@@ -26,6 +19,14 @@
   return;
 }
 
+struct vertex_main_out {
+  float4 tint_symbol_1_1;
+};
+
+struct tint_symbol_3 {
+  float4 tint_symbol_1_1 [[position]];
+};
+
 vertex_main_out vertex_main_inner(depth2d_ms<float, access::read> tint_symbol_9, thread float4* const tint_symbol_10) {
   vertex_main_1(tint_symbol_9, tint_symbol_10);
   vertex_main_out const tint_symbol_4 = {.tint_symbol_1_1=*(tint_symbol_10)};
diff --git a/test/builtins/textureNumSamples/depth_ms.spvasm.expected.msl b/test/builtins/textureNumSamples/depth_ms.spvasm.expected.msl
index 6f38d37..8a92713 100644
--- a/test/builtins/textureNumSamples/depth_ms.spvasm.expected.msl
+++ b/test/builtins/textureNumSamples/depth_ms.spvasm.expected.msl
@@ -1,13 +1,6 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct vertex_main_out {
-  float4 tint_symbol_1_1;
-};
-struct tint_symbol_3 {
-  float4 tint_symbol_1_1 [[position]];
-};
-
 void textureNumSamples_a3c8a0(depth2d_ms<float, access::read> tint_symbol_5) {
   int res = 0;
   int const x_16 = int(tint_symbol_5.get_num_samples());
@@ -26,6 +19,14 @@
   return;
 }
 
+struct vertex_main_out {
+  float4 tint_symbol_1_1;
+};
+
+struct tint_symbol_3 {
+  float4 tint_symbol_1_1 [[position]];
+};
+
 vertex_main_out vertex_main_inner(depth2d_ms<float, access::read> tint_symbol_9, thread float4* const tint_symbol_10) {
   vertex_main_1(tint_symbol_9, tint_symbol_10);
   vertex_main_out const tint_symbol_4 = {.tint_symbol_1_1=*(tint_symbol_10)};
diff --git a/test/expressions/literals/-inf.spvasm.expected.msl b/test/expressions/literals/-inf.spvasm.expected.msl
index e3b3640..f9c80ba 100644
--- a/test/expressions/literals/-inf.spvasm.expected.msl
+++ b/test/expressions/literals/-inf.spvasm.expected.msl
@@ -1,18 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct main_out {
-  float4 out_var_SV_TARGET_1;
-};
-struct tint_symbol_1 {
-  float4 out_var_SV_TARGET_1 [[color(0)]];
-};
-
 void main_1(thread float4* const tint_symbol_3) {
   *(tint_symbol_3) = float4(-INFINITY, -INFINITY, -INFINITY, -INFINITY);
   return;
 }
 
+struct main_out {
+  float4 out_var_SV_TARGET_1;
+};
+
+struct tint_symbol_1 {
+  float4 out_var_SV_TARGET_1 [[color(0)]];
+};
+
 main_out tint_symbol_inner(thread float4* const tint_symbol_4) {
   main_1(tint_symbol_4);
   main_out const tint_symbol_2 = {.out_var_SV_TARGET_1=*(tint_symbol_4)};
diff --git a/test/expressions/literals/inf.spvasm.expected.msl b/test/expressions/literals/inf.spvasm.expected.msl
index 3135a4e..73aca9e 100644
--- a/test/expressions/literals/inf.spvasm.expected.msl
+++ b/test/expressions/literals/inf.spvasm.expected.msl
@@ -1,18 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct main_out {
-  float4 out_var_SV_TARGET_1;
-};
-struct tint_symbol_1 {
-  float4 out_var_SV_TARGET_1 [[color(0)]];
-};
-
 void main_1(thread float4* const tint_symbol_3) {
   *(tint_symbol_3) = float4(INFINITY, INFINITY, INFINITY, INFINITY);
   return;
 }
 
+struct main_out {
+  float4 out_var_SV_TARGET_1;
+};
+
+struct tint_symbol_1 {
+  float4 out_var_SV_TARGET_1 [[color(0)]];
+};
+
 main_out tint_symbol_inner(thread float4* const tint_symbol_4) {
   main_1(tint_symbol_4);
   main_out const tint_symbol_2 = {.out_var_SV_TARGET_1=*(tint_symbol_4)};
diff --git a/test/expressions/literals/nan.spvasm.expected.msl b/test/expressions/literals/nan.spvasm.expected.msl
index 740613b..90317e4 100644
--- a/test/expressions/literals/nan.spvasm.expected.msl
+++ b/test/expressions/literals/nan.spvasm.expected.msl
@@ -1,18 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct main_out {
-  float4 out_var_SV_TARGET_1;
-};
-struct tint_symbol_1 {
-  float4 out_var_SV_TARGET_1 [[color(0)]];
-};
-
 void main_1(thread float4* const tint_symbol_3) {
   *(tint_symbol_3) = float4(NAN, NAN, NAN, NAN);
   return;
 }
 
+struct main_out {
+  float4 out_var_SV_TARGET_1;
+};
+
+struct tint_symbol_1 {
+  float4 out_var_SV_TARGET_1 [[color(0)]];
+};
+
 main_out tint_symbol_inner(thread float4* const tint_symbol_4) {
   main_1(tint_symbol_4);
   main_out const tint_symbol_2 = {.out_var_SV_TARGET_1=*(tint_symbol_4)};
diff --git a/test/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.msl b/test/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.msl
index e33850f..b62a321 100644
--- a/test/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.msl
+++ b/test/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant float2x2 m = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
+
diff --git a/test/expressions/type_ctor/mat2x2/explicit/vectors/f32.wgsl.expected.msl b/test/expressions/type_ctor/mat2x2/explicit/vectors/f32.wgsl.expected.msl
index e33850f..b62a321 100644
--- a/test/expressions/type_ctor/mat2x2/explicit/vectors/f32.wgsl.expected.msl
+++ b/test/expressions/type_ctor/mat2x2/explicit/vectors/f32.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant float2x2 m = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
+
diff --git a/test/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl.expected.msl b/test/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl.expected.msl
index e33850f..b62a321 100644
--- a/test/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl.expected.msl
+++ b/test/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant float2x2 m = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
+
diff --git a/test/expressions/type_ctor/mat2x2/inferred/vectors/f32.wgsl.expected.msl b/test/expressions/type_ctor/mat2x2/inferred/vectors/f32.wgsl.expected.msl
index e33850f..b62a321 100644
--- a/test/expressions/type_ctor/mat2x2/inferred/vectors/f32.wgsl.expected.msl
+++ b/test/expressions/type_ctor/mat2x2/inferred/vectors/f32.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant float2x2 m = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
+
diff --git a/test/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.msl b/test/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.msl
index 86b17e2..443c61f 100644
--- a/test/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.msl
+++ b/test/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant float2x3 m = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
+
diff --git a/test/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl.expected.msl b/test/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl.expected.msl
index 86b17e2..443c61f 100644
--- a/test/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl.expected.msl
+++ b/test/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant float2x3 m = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
+
diff --git a/test/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.msl b/test/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.msl
index 86b17e2..443c61f 100644
--- a/test/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.msl
+++ b/test/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant float2x3 m = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
+
diff --git a/test/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl.expected.msl b/test/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl.expected.msl
index 86b17e2..443c61f 100644
--- a/test/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl.expected.msl
+++ b/test/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant float2x3 m = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
+
diff --git a/test/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.msl b/test/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.msl
index 684918a..b309bde 100644
--- a/test/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.msl
+++ b/test/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant float2x4 m = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
+
diff --git a/test/expressions/type_ctor/mat2x4/explicit/vectors/f32.wgsl.expected.msl b/test/expressions/type_ctor/mat2x4/explicit/vectors/f32.wgsl.expected.msl
index 684918a..b309bde 100644
--- a/test/expressions/type_ctor/mat2x4/explicit/vectors/f32.wgsl.expected.msl
+++ b/test/expressions/type_ctor/mat2x4/explicit/vectors/f32.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant float2x4 m = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
+
diff --git a/test/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl.expected.msl b/test/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl.expected.msl
index 684918a..b309bde 100644
--- a/test/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl.expected.msl
+++ b/test/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant float2x4 m = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
+
diff --git a/test/expressions/type_ctor/mat2x4/inferred/vectors/f32.wgsl.expected.msl b/test/expressions/type_ctor/mat2x4/inferred/vectors/f32.wgsl.expected.msl
index 684918a..b309bde 100644
--- a/test/expressions/type_ctor/mat2x4/inferred/vectors/f32.wgsl.expected.msl
+++ b/test/expressions/type_ctor/mat2x4/inferred/vectors/f32.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant float2x4 m = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
+
diff --git a/test/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.msl b/test/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.msl
index 04aad8e..ae7f33c 100644
--- a/test/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.msl
+++ b/test/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant float3x2 m = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
+
diff --git a/test/expressions/type_ctor/mat3x2/explicit/vectors/f32.wgsl.expected.msl b/test/expressions/type_ctor/mat3x2/explicit/vectors/f32.wgsl.expected.msl
index 04aad8e..ae7f33c 100644
--- a/test/expressions/type_ctor/mat3x2/explicit/vectors/f32.wgsl.expected.msl
+++ b/test/expressions/type_ctor/mat3x2/explicit/vectors/f32.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant float3x2 m = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
+
diff --git a/test/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl.expected.msl b/test/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl.expected.msl
index 04aad8e..ae7f33c 100644
--- a/test/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl.expected.msl
+++ b/test/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant float3x2 m = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
+
diff --git a/test/expressions/type_ctor/mat3x2/inferred/vectors/f32.wgsl.expected.msl b/test/expressions/type_ctor/mat3x2/inferred/vectors/f32.wgsl.expected.msl
index 04aad8e..ae7f33c 100644
--- a/test/expressions/type_ctor/mat3x2/inferred/vectors/f32.wgsl.expected.msl
+++ b/test/expressions/type_ctor/mat3x2/inferred/vectors/f32.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant float3x2 m = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
+
diff --git a/test/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.msl b/test/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.msl
index c8c096a..2635df5 100644
--- a/test/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.msl
+++ b/test/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant float3x3 m = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
+
diff --git a/test/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl.expected.msl b/test/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl.expected.msl
index c8c096a..2635df5 100644
--- a/test/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl.expected.msl
+++ b/test/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant float3x3 m = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
+
diff --git a/test/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.msl b/test/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.msl
index c8c096a..2635df5 100644
--- a/test/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.msl
+++ b/test/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant float3x3 m = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
+
diff --git a/test/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl.expected.msl b/test/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl.expected.msl
index c8c096a..2635df5 100644
--- a/test/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl.expected.msl
+++ b/test/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant float3x3 m = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
+
diff --git a/test/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.msl b/test/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.msl
index 114cb09..3608220 100644
--- a/test/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.msl
+++ b/test/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant float3x4 m = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
+
diff --git a/test/expressions/type_ctor/mat3x4/explicit/vectors/f32.wgsl.expected.msl b/test/expressions/type_ctor/mat3x4/explicit/vectors/f32.wgsl.expected.msl
index 114cb09..3608220 100644
--- a/test/expressions/type_ctor/mat3x4/explicit/vectors/f32.wgsl.expected.msl
+++ b/test/expressions/type_ctor/mat3x4/explicit/vectors/f32.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant float3x4 m = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
+
diff --git a/test/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl.expected.msl b/test/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl.expected.msl
index 114cb09..3608220 100644
--- a/test/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl.expected.msl
+++ b/test/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant float3x4 m = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
+
diff --git a/test/expressions/type_ctor/mat3x4/inferred/vectors/f32.wgsl.expected.msl b/test/expressions/type_ctor/mat3x4/inferred/vectors/f32.wgsl.expected.msl
index 114cb09..3608220 100644
--- a/test/expressions/type_ctor/mat3x4/inferred/vectors/f32.wgsl.expected.msl
+++ b/test/expressions/type_ctor/mat3x4/inferred/vectors/f32.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant float3x4 m = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
+
diff --git a/test/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.msl b/test/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.msl
index 0df65ff..0597230 100644
--- a/test/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.msl
+++ b/test/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant float4x2 m = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
+
diff --git a/test/expressions/type_ctor/mat4x2/explicit/vectors/f32.wgsl.expected.msl b/test/expressions/type_ctor/mat4x2/explicit/vectors/f32.wgsl.expected.msl
index 0df65ff..0597230 100644
--- a/test/expressions/type_ctor/mat4x2/explicit/vectors/f32.wgsl.expected.msl
+++ b/test/expressions/type_ctor/mat4x2/explicit/vectors/f32.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant float4x2 m = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
+
diff --git a/test/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl.expected.msl b/test/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl.expected.msl
index 0df65ff..0597230 100644
--- a/test/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl.expected.msl
+++ b/test/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant float4x2 m = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
+
diff --git a/test/expressions/type_ctor/mat4x2/inferred/vectors/f32.wgsl.expected.msl b/test/expressions/type_ctor/mat4x2/inferred/vectors/f32.wgsl.expected.msl
index 0df65ff..0597230 100644
--- a/test/expressions/type_ctor/mat4x2/inferred/vectors/f32.wgsl.expected.msl
+++ b/test/expressions/type_ctor/mat4x2/inferred/vectors/f32.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant float4x2 m = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
+
diff --git a/test/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.msl b/test/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.msl
index 2a7c078..d935650 100644
--- a/test/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.msl
+++ b/test/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant float4x3 m = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
+
diff --git a/test/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl.expected.msl b/test/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl.expected.msl
index 2a7c078..d935650 100644
--- a/test/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl.expected.msl
+++ b/test/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant float4x3 m = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
+
diff --git a/test/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.msl b/test/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.msl
index 2a7c078..d935650 100644
--- a/test/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.msl
+++ b/test/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant float4x3 m = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
+
diff --git a/test/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl.expected.msl b/test/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl.expected.msl
index 2a7c078..d935650 100644
--- a/test/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl.expected.msl
+++ b/test/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant float4x3 m = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
+
diff --git a/test/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.msl b/test/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.msl
index 6fb51a2..053e23d 100644
--- a/test/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.msl
+++ b/test/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant float4x4 m = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
+
diff --git a/test/expressions/type_ctor/mat4x4/explicit/vectors/f32.wgsl.expected.msl b/test/expressions/type_ctor/mat4x4/explicit/vectors/f32.wgsl.expected.msl
index 6fb51a2..053e23d 100644
--- a/test/expressions/type_ctor/mat4x4/explicit/vectors/f32.wgsl.expected.msl
+++ b/test/expressions/type_ctor/mat4x4/explicit/vectors/f32.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant float4x4 m = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
+
diff --git a/test/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl.expected.msl b/test/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl.expected.msl
index 6fb51a2..053e23d 100644
--- a/test/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl.expected.msl
+++ b/test/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant float4x4 m = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
+
diff --git a/test/expressions/type_ctor/mat4x4/inferred/vectors/f32.wgsl.expected.msl b/test/expressions/type_ctor/mat4x4/inferred/vectors/f32.wgsl.expected.msl
index 6fb51a2..053e23d 100644
--- a/test/expressions/type_ctor/mat4x4/inferred/vectors/f32.wgsl.expected.msl
+++ b/test/expressions/type_ctor/mat4x4/inferred/vectors/f32.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant float4x4 m = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
+
diff --git a/test/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.msl b/test/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.msl
index 3103a85..15bd21b 100644
--- a/test/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.msl
+++ b/test/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant bool2 v = bool2(false, true);
+
diff --git a/test/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.msl b/test/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.msl
index 6e66829..f343a25 100644
--- a/test/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.msl
+++ b/test/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant float2 v = float2(0.0f, 1.0f);
+
diff --git a/test/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.msl b/test/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.msl
index 2a0fc8d..af85d23 100644
--- a/test/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.msl
+++ b/test/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant int2 v = int2(0, 1);
+
diff --git a/test/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.msl b/test/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.msl
index 132ee56..764c49a 100644
--- a/test/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.msl
+++ b/test/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant uint2 v = uint2(0u, 1u);
+
diff --git a/test/expressions/type_ctor/vec2/inferred/bool.wgsl.expected.msl b/test/expressions/type_ctor/vec2/inferred/bool.wgsl.expected.msl
index 3103a85..15bd21b 100644
--- a/test/expressions/type_ctor/vec2/inferred/bool.wgsl.expected.msl
+++ b/test/expressions/type_ctor/vec2/inferred/bool.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant bool2 v = bool2(false, true);
+
diff --git a/test/expressions/type_ctor/vec2/inferred/f32.wgsl.expected.msl b/test/expressions/type_ctor/vec2/inferred/f32.wgsl.expected.msl
index 6e66829..f343a25 100644
--- a/test/expressions/type_ctor/vec2/inferred/f32.wgsl.expected.msl
+++ b/test/expressions/type_ctor/vec2/inferred/f32.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant float2 v = float2(0.0f, 1.0f);
+
diff --git a/test/expressions/type_ctor/vec2/inferred/i32.wgsl.expected.msl b/test/expressions/type_ctor/vec2/inferred/i32.wgsl.expected.msl
index 2a0fc8d..af85d23 100644
--- a/test/expressions/type_ctor/vec2/inferred/i32.wgsl.expected.msl
+++ b/test/expressions/type_ctor/vec2/inferred/i32.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant int2 v = int2(0, 1);
+
diff --git a/test/expressions/type_ctor/vec2/inferred/u32.wgsl.expected.msl b/test/expressions/type_ctor/vec2/inferred/u32.wgsl.expected.msl
index 132ee56..764c49a 100644
--- a/test/expressions/type_ctor/vec2/inferred/u32.wgsl.expected.msl
+++ b/test/expressions/type_ctor/vec2/inferred/u32.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant uint2 v = uint2(0u, 1u);
+
diff --git a/test/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.msl b/test/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.msl
index 5393cb3..0cd9b5b 100644
--- a/test/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.msl
+++ b/test/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant bool3 v = bool3(false, true, false);
+
diff --git a/test/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.msl b/test/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.msl
index 6b8d4ff..b0b245a 100644
--- a/test/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.msl
+++ b/test/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant float3 v = float3(0.0f, 1.0f, 2.0f);
+
diff --git a/test/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.msl b/test/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.msl
index 941501e..63fbce8 100644
--- a/test/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.msl
+++ b/test/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant int3 v = int3(0, 1, 2);
+
diff --git a/test/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.msl b/test/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.msl
index d2a07cf..6090ecf 100644
--- a/test/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.msl
+++ b/test/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant uint3 v = uint3(0u, 1u, 2u);
+
diff --git a/test/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.msl b/test/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.msl
index 2d872de..840b113 100644
--- a/test/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.msl
+++ b/test/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant bool4 v = bool4(false, true, false, true);
+
diff --git a/test/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.msl b/test/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.msl
index 08af725..568e746 100644
--- a/test/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.msl
+++ b/test/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant float4 v = float4(0.0f, 1.0f, 2.0f, 3.0f);
+
diff --git a/test/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.msl b/test/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.msl
index b4294a3..f00d2eb 100644
--- a/test/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.msl
+++ b/test/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant int4 v = int4(0, 1, 2, 3);
+
diff --git a/test/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.msl b/test/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.msl
index c51f246..83695b8 100644
--- a/test/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.msl
+++ b/test/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.msl
@@ -2,3 +2,4 @@
 
 using namespace metal;
 constant uint4 v = uint4(0u, 1u, 2u, 3u);
+
diff --git a/test/expressions/zero_init/array/struct.wgsl.expected.msl b/test/expressions/zero_init/array/struct.wgsl.expected.msl
index 8dc9f2e..79d7fd7 100644
--- a/test/expressions/zero_init/array/struct.wgsl.expected.msl
+++ b/test/expressions/zero_init/array/struct.wgsl.expected.msl
@@ -7,6 +7,7 @@
   float f;
   bool b;
 };
+
 struct tint_array_wrapper {
   S arr[4];
 };
diff --git a/test/expressions/zero_init/struct/array.wgsl.expected.msl b/test/expressions/zero_init/struct/array.wgsl.expected.msl
index 61b9dc1..2600536 100644
--- a/test/expressions/zero_init/struct/array.wgsl.expected.msl
+++ b/test/expressions/zero_init/struct/array.wgsl.expected.msl
@@ -4,6 +4,7 @@
 struct tint_array_wrapper {
   float arr[4];
 };
+
 struct S {
   tint_array_wrapper a;
 };
diff --git a/test/identifiers/underscore/double/alias.wgsl.expected.msl b/test/identifiers/underscore/double/alias.wgsl.expected.msl
index 7e91cf7..cdb6bd9 100644
--- a/test/identifiers/underscore/double/alias.wgsl.expected.msl
+++ b/test/identifiers/underscore/double/alias.wgsl.expected.msl
@@ -1,7 +1,6 @@
 #include <metal_stdlib>
 
 using namespace metal;
-
 void f() {
   int c = 0;
   int d = 0;
diff --git a/test/identifiers/underscore/double/let.wgsl.expected.msl b/test/identifiers/underscore/double/let.wgsl.expected.msl
index af5a236..47c1b05 100644
--- a/test/identifiers/underscore/double/let.wgsl.expected.msl
+++ b/test/identifiers/underscore/double/let.wgsl.expected.msl
@@ -2,7 +2,9 @@
 
 using namespace metal;
 constant int a = 1;
+
 constant int a__ = 2;
+
 void f() {
   int const b = a;
   int const b__ = a__;
diff --git a/test/identifiers/underscore/double/struct.wgsl.expected.msl b/test/identifiers/underscore/double/struct.wgsl.expected.msl
index 2389d0e..0b38868 100644
--- a/test/identifiers/underscore/double/struct.wgsl.expected.msl
+++ b/test/identifiers/underscore/double/struct.wgsl.expected.msl
@@ -4,6 +4,7 @@
 struct a {
   int b;
 };
+
 struct a__ {
   int b__;
 };
diff --git a/test/identifiers/underscore/prefix/lower/alias.wgsl.expected.msl b/test/identifiers/underscore/prefix/lower/alias.wgsl.expected.msl
index 7e91cf7..cdb6bd9 100644
--- a/test/identifiers/underscore/prefix/lower/alias.wgsl.expected.msl
+++ b/test/identifiers/underscore/prefix/lower/alias.wgsl.expected.msl
@@ -1,7 +1,6 @@
 #include <metal_stdlib>
 
 using namespace metal;
-
 void f() {
   int c = 0;
   int d = 0;
diff --git a/test/identifiers/underscore/prefix/lower/let.wgsl.expected.msl b/test/identifiers/underscore/prefix/lower/let.wgsl.expected.msl
index 555cfd1..7b3d669 100644
--- a/test/identifiers/underscore/prefix/lower/let.wgsl.expected.msl
+++ b/test/identifiers/underscore/prefix/lower/let.wgsl.expected.msl
@@ -2,7 +2,9 @@
 
 using namespace metal;
 constant int a = 1;
+
 constant int _a = 2;
+
 void f() {
   int const b = a;
   int const _b = _a;
diff --git a/test/identifiers/underscore/prefix/lower/struct.wgsl.expected.msl b/test/identifiers/underscore/prefix/lower/struct.wgsl.expected.msl
index 32bffa1..72759ea 100644
--- a/test/identifiers/underscore/prefix/lower/struct.wgsl.expected.msl
+++ b/test/identifiers/underscore/prefix/lower/struct.wgsl.expected.msl
@@ -4,6 +4,7 @@
 struct a {
   int b;
 };
+
 struct _a {
   int _b;
 };
diff --git a/test/identifiers/underscore/prefix/upper/alias.wgsl.expected.msl b/test/identifiers/underscore/prefix/upper/alias.wgsl.expected.msl
index 7e91cf7..cdb6bd9 100644
--- a/test/identifiers/underscore/prefix/upper/alias.wgsl.expected.msl
+++ b/test/identifiers/underscore/prefix/upper/alias.wgsl.expected.msl
@@ -1,7 +1,6 @@
 #include <metal_stdlib>
 
 using namespace metal;
-
 void f() {
   int c = 0;
   int d = 0;
diff --git a/test/identifiers/underscore/prefix/upper/let.wgsl.expected.msl b/test/identifiers/underscore/prefix/upper/let.wgsl.expected.msl
index e1af5ac..5afe76f 100644
--- a/test/identifiers/underscore/prefix/upper/let.wgsl.expected.msl
+++ b/test/identifiers/underscore/prefix/upper/let.wgsl.expected.msl
@@ -2,7 +2,9 @@
 
 using namespace metal;
 constant int A = 1;
+
 constant int _A = 2;
+
 void f() {
   int const B = A;
   int const _B = _A;
diff --git a/test/identifiers/underscore/prefix/upper/struct.wgsl.expected.msl b/test/identifiers/underscore/prefix/upper/struct.wgsl.expected.msl
index bafed70..cc20aac 100644
--- a/test/identifiers/underscore/prefix/upper/struct.wgsl.expected.msl
+++ b/test/identifiers/underscore/prefix/upper/struct.wgsl.expected.msl
@@ -4,6 +4,7 @@
 struct A {
   int B;
 };
+
 struct _A {
   int _B;
 };
diff --git a/test/layout/storage/mat2x2/stride/16.spvasm.expected.msl b/test/layout/storage/mat2x2/stride/16.spvasm.expected.msl
index 6a0ca3e..9454d47 100644
--- a/test/layout/storage/mat2x2/stride/16.spvasm.expected.msl
+++ b/test/layout/storage/mat2x2/stride/16.spvasm.expected.msl
@@ -5,9 +5,11 @@
   /* 0x0000 */ float2 el;
   /* 0x0008 */ int8_t tint_pad[8];
 };
+
 struct tint_array_wrapper {
   /* 0x0000 */ strided_arr arr[2];
 };
+
 struct SSBO {
   /* 0x0000 */ tint_array_wrapper m;
 };
diff --git a/test/let/global/global.wgsl.expected.msl b/test/let/global/global.wgsl.expected.msl
index 2a9302b..d5efc4e 100644
--- a/test/let/global/global.wgsl.expected.msl
+++ b/test/let/global/global.wgsl.expected.msl
@@ -4,22 +4,33 @@
 struct MyStruct {
   float f1;
 };
+
 struct tint_array_wrapper {
   float arr[10];
 };
+
+constant int v1 = 1;
+
+constant uint v2 = 1u;
+
+constant float v3 = 1.0f;
+
+constant int3 v4 = int3(1, 1, 1);
+
+constant uint3 v5 = uint3(1u, 1u, 1u);
+
+constant float3 v6 = float3(1.0f, 1.0f, 1.0f);
+
+constant float3x3 v7 = float3x3(float3(1.0f, 1.0f, 1.0f), float3(1.0f, 1.0f, 1.0f), float3(1.0f, 1.0f, 1.0f));
+
+constant MyStruct v8 = {};
+
+constant tint_array_wrapper v9 = {.arr={}};
+
 struct tint_symbol_1 {
   float4 value [[color(0)]];
 };
 
-constant int v1 = 1;
-constant uint v2 = 1u;
-constant float v3 = 1.0f;
-constant int3 v4 = int3(1, 1, 1);
-constant uint3 v5 = uint3(1u, 1u, 1u);
-constant float3 v6 = float3(1.0f, 1.0f, 1.0f);
-constant float3x3 v7 = float3x3(float3(1.0f, 1.0f, 1.0f), float3(1.0f, 1.0f, 1.0f), float3(1.0f, 1.0f, 1.0f));
-constant MyStruct v8 = {};
-constant tint_array_wrapper v9 = {.arr={}};
 float4 tint_symbol_inner() {
   return float4(0.0f, 0.0f, 0.0f, 0.0f);
 }
diff --git a/test/let/inferred/function.wgsl.expected.msl b/test/let/inferred/function.wgsl.expected.msl
index 9de5eaf..6a699b5 100644
--- a/test/let/inferred/function.wgsl.expected.msl
+++ b/test/let/inferred/function.wgsl.expected.msl
@@ -4,12 +4,10 @@
 struct MyStruct {
   float f1;
 };
+
 struct tint_array_wrapper {
   float arr[10];
 };
-struct tint_symbol_1 {
-  float4 value [[color(0)]];
-};
 
 int ret_i32() {
   return 1;
@@ -51,6 +49,10 @@
   tint_array_wrapper const v15 = ret_MyArray();
 }
 
+struct tint_symbol_1 {
+  float4 value [[color(0)]];
+};
+
 float4 tint_symbol_inner() {
   return float4(0.0f, 0.0f, 0.0f, 0.0f);
 }
diff --git a/test/samples/compute_boids.wgsl.expected.msl b/test/samples/compute_boids.wgsl.expected.msl
index e0fde9b..399bdf3 100644
--- a/test/samples/compute_boids.wgsl.expected.msl
+++ b/test/samples/compute_boids.wgsl.expected.msl
@@ -6,31 +6,10 @@
   float2 a_particleVel [[attribute(1)]];
   float2 a_pos [[attribute(2)]];
 };
+
 struct tint_symbol_2 {
   float4 value [[position]];
 };
-struct tint_symbol_3 {
-  float4 value [[color(0)]];
-};
-struct Particle {
-  /* 0x0000 */ float2 pos;
-  /* 0x0008 */ float2 vel;
-};
-struct SimParams {
-  /* 0x0000 */ float deltaT;
-  /* 0x0004 */ float rule1Distance;
-  /* 0x0008 */ float rule2Distance;
-  /* 0x000c */ float rule3Distance;
-  /* 0x0010 */ float rule1Scale;
-  /* 0x0014 */ float rule2Scale;
-  /* 0x0018 */ float rule3Scale;
-};
-struct tint_array_wrapper {
-  /* 0x0000 */ Particle arr[5];
-};
-struct Particles {
-  /* 0x0000 */ tint_array_wrapper particles;
-};
 
 float4 vert_main_inner(float2 a_particlePos, float2 a_particleVel, float2 a_pos) {
   float angle = -(atan2(a_particleVel[0], a_particleVel[1]));
@@ -45,6 +24,10 @@
   return wrapper_result;
 }
 
+struct tint_symbol_3 {
+  float4 value [[color(0)]];
+};
+
 float4 frag_main_inner() {
   return float4(1.0f, 1.0f, 1.0f, 1.0f);
 }
@@ -56,6 +39,29 @@
   return wrapper_result_1;
 }
 
+struct Particle {
+  /* 0x0000 */ float2 pos;
+  /* 0x0008 */ float2 vel;
+};
+
+struct SimParams {
+  /* 0x0000 */ float deltaT;
+  /* 0x0004 */ float rule1Distance;
+  /* 0x0008 */ float rule2Distance;
+  /* 0x000c */ float rule3Distance;
+  /* 0x0010 */ float rule1Scale;
+  /* 0x0014 */ float rule2Scale;
+  /* 0x0018 */ float rule3Scale;
+};
+
+struct tint_array_wrapper {
+  /* 0x0000 */ Particle arr[5];
+};
+
+struct Particles {
+  /* 0x0000 */ tint_array_wrapper particles;
+};
+
 void comp_main_inner(uint3 gl_GlobalInvocationID, device Particles* const tint_symbol_4, const constant SimParams* const tint_symbol_5, device Particles* const tint_symbol_6) {
   uint index = gl_GlobalInvocationID[0];
   if ((index >= 5u)) {
diff --git a/test/samples/cube.wgsl.expected.msl b/test/samples/cube.wgsl.expected.msl
index bcf2f8a..e5cbb88 100644
--- a/test/samples/cube.wgsl.expected.msl
+++ b/test/samples/cube.wgsl.expected.msl
@@ -4,28 +4,26 @@
 struct Uniforms {
   /* 0x0000 */ float4x4 modelViewProjectionMatrix;
 };
+
 struct VertexInput {
   float4 cur_position;
   float4 color;
 };
+
 struct VertexOutput {
   float4 vtxFragColor;
   float4 Position;
 };
+
 struct tint_symbol_1 {
   float4 cur_position [[attribute(0)]];
   float4 color [[attribute(1)]];
 };
+
 struct tint_symbol_2 {
   float4 vtxFragColor [[user(locn0)]];
   float4 Position [[position]];
 };
-struct tint_symbol_4 {
-  float4 fragColor [[user(locn0)]];
-};
-struct tint_symbol_5 {
-  float4 value [[color(0)]];
-};
 
 VertexOutput vtx_main_inner(VertexInput input, const constant Uniforms* const tint_symbol_7) {
   VertexOutput output = {};
@@ -43,6 +41,14 @@
   return wrapper_result;
 }
 
+struct tint_symbol_4 {
+  float4 fragColor [[user(locn0)]];
+};
+
+struct tint_symbol_5 {
+  float4 value [[color(0)]];
+};
+
 float4 frag_main_inner(float4 fragColor) {
   return fragColor;
 }
diff --git a/test/samples/simple.wgsl.expected.msl b/test/samples/simple.wgsl.expected.msl
index 2f37667..d7fde53 100644
--- a/test/samples/simple.wgsl.expected.msl
+++ b/test/samples/simple.wgsl.expected.msl
@@ -1,13 +1,13 @@
 #include <metal_stdlib>
 
 using namespace metal;
+void bar() {
+}
+
 struct tint_symbol_1 {
   float4 value [[color(0)]];
 };
 
-void bar() {
-}
-
 float4 tint_symbol_inner() {
   float2 a = float2();
   bar();
diff --git a/test/samples/simple_vertex.spvasm.expected.msl b/test/samples/simple_vertex.spvasm.expected.msl
index 8622e3b..f12b315 100644
--- a/test/samples/simple_vertex.spvasm.expected.msl
+++ b/test/samples/simple_vertex.spvasm.expected.msl
@@ -1,18 +1,19 @@
 #include <metal_stdlib>
 
 using namespace metal;
-struct main_out {
-  float4 gl_Position;
-};
-struct tint_symbol_1 {
-  float4 gl_Position [[position]];
-};
-
 void main_1(thread float4* const tint_symbol_3) {
   *(tint_symbol_3) = float4(0.0f, 0.0f, 0.0f, 0.0f);
   return;
 }
 
+struct main_out {
+  float4 gl_Position;
+};
+
+struct tint_symbol_1 {
+  float4 gl_Position [[position]];
+};
+
 main_out tint_symbol_inner(thread float4* const tint_symbol_4) {
   main_1(tint_symbol_4);
   main_out const tint_symbol_2 = {.gl_Position=*(tint_symbol_4)};
diff --git a/test/samples/triangle.wgsl.expected.msl b/test/samples/triangle.wgsl.expected.msl
index fa2cab6..246e75c 100644
--- a/test/samples/triangle.wgsl.expected.msl
+++ b/test/samples/triangle.wgsl.expected.msl
@@ -4,14 +4,13 @@
 struct tint_array_wrapper {
   float2 arr[3];
 };
+
+constant tint_array_wrapper pos = {.arr={float2(0.0f, 0.5f), float2(-0.5f, -0.5f), float2(0.5f, -0.5f)}};
+
 struct tint_symbol {
   float4 value [[position]];
 };
-struct tint_symbol_1 {
-  float4 value [[color(0)]];
-};
 
-constant tint_array_wrapper pos = {.arr={float2(0.0f, 0.5f), float2(-0.5f, -0.5f), float2(0.5f, -0.5f)}};
 float4 vtx_main_inner(uint VertexIndex) {
   return float4(pos.arr[VertexIndex], 0.0f, 1.0f);
 }
@@ -23,6 +22,10 @@
   return wrapper_result;
 }
 
+struct tint_symbol_1 {
+  float4 value [[color(0)]];
+};
+
 float4 frag_main_inner() {
   return float4(1.0f, 0.0f, 0.0f, 1.0f);
 }
diff --git a/test/shader_io/compute_input_mixed.wgsl.expected.msl b/test/shader_io/compute_input_mixed.wgsl.expected.msl
index e46f80d..1f5d646 100644
--- a/test/shader_io/compute_input_mixed.wgsl.expected.msl
+++ b/test/shader_io/compute_input_mixed.wgsl.expected.msl
@@ -4,6 +4,7 @@
 struct ComputeInputs0 {
   uint3 local_invocation_id;
 };
+
 struct ComputeInputs1 {
   uint3 workgroup_id;
 };
diff --git a/test/shader_io/fragment_input_locations_struct.wgsl.expected.msl b/test/shader_io/fragment_input_locations_struct.wgsl.expected.msl
index 2f233c5..3c7f5c4 100644
--- a/test/shader_io/fragment_input_locations_struct.wgsl.expected.msl
+++ b/test/shader_io/fragment_input_locations_struct.wgsl.expected.msl
@@ -7,6 +7,7 @@
   float loc2;
   float4 loc3;
 };
+
 struct tint_symbol_2 {
   int loc0 [[user(locn0)]] [[flat]];
   uint loc1 [[user(locn1)]] [[flat]];
diff --git a/test/shader_io/fragment_input_mixed.wgsl.expected.msl b/test/shader_io/fragment_input_mixed.wgsl.expected.msl
index 5210ca2..5756387 100644
--- a/test/shader_io/fragment_input_mixed.wgsl.expected.msl
+++ b/test/shader_io/fragment_input_mixed.wgsl.expected.msl
@@ -5,10 +5,12 @@
   float4 position;
   int loc0;
 };
+
 struct FragmentInputs1 {
   float4 loc3;
   uint sample_mask;
 };
+
 struct tint_symbol_2 {
   int loc0 [[user(locn0)]] [[flat]];
   uint loc1 [[user(locn1)]] [[flat]];
diff --git a/test/shader_io/fragment_output_builtins.wgsl.expected.msl b/test/shader_io/fragment_output_builtins.wgsl.expected.msl
index 97d6904..a537666 100644
--- a/test/shader_io/fragment_output_builtins.wgsl.expected.msl
+++ b/test/shader_io/fragment_output_builtins.wgsl.expected.msl
@@ -4,9 +4,6 @@
 struct tint_symbol {
   float value [[depth(any)]];
 };
-struct tint_symbol_1 {
-  uint value [[sample_mask]];
-};
 
 float main1_inner() {
   return 1.0f;
@@ -19,6 +16,10 @@
   return wrapper_result;
 }
 
+struct tint_symbol_1 {
+  uint value [[sample_mask]];
+};
+
 uint main2_inner() {
   return 1u;
 }
diff --git a/test/shader_io/fragment_output_builtins_struct.wgsl.expected.msl b/test/shader_io/fragment_output_builtins_struct.wgsl.expected.msl
index 65de6df..c30a67d 100644
--- a/test/shader_io/fragment_output_builtins_struct.wgsl.expected.msl
+++ b/test/shader_io/fragment_output_builtins_struct.wgsl.expected.msl
@@ -5,6 +5,7 @@
   float frag_depth;
   uint sample_mask;
 };
+
 struct tint_symbol_1 {
   float frag_depth [[depth(any)]];
   uint sample_mask [[sample_mask]];
diff --git a/test/shader_io/fragment_output_locations.wgsl.expected.msl b/test/shader_io/fragment_output_locations.wgsl.expected.msl
index 03ba9bb..d381524 100644
--- a/test/shader_io/fragment_output_locations.wgsl.expected.msl
+++ b/test/shader_io/fragment_output_locations.wgsl.expected.msl
@@ -4,15 +4,6 @@
 struct tint_symbol {
   int value [[color(0)]];
 };
-struct tint_symbol_1 {
-  uint value [[color(1)]];
-};
-struct tint_symbol_2 {
-  float value [[color(2)]];
-};
-struct tint_symbol_3 {
-  float4 value [[color(3)]];
-};
 
 int main0_inner() {
   return 1;
@@ -25,6 +16,10 @@
   return wrapper_result;
 }
 
+struct tint_symbol_1 {
+  uint value [[color(1)]];
+};
+
 uint main1_inner() {
   return 1u;
 }
@@ -36,6 +31,10 @@
   return wrapper_result_1;
 }
 
+struct tint_symbol_2 {
+  float value [[color(2)]];
+};
+
 float main2_inner() {
   return 1.0f;
 }
@@ -47,6 +46,10 @@
   return wrapper_result_2;
 }
 
+struct tint_symbol_3 {
+  float4 value [[color(3)]];
+};
+
 float4 main3_inner() {
   return float4(1.0f, 2.0f, 3.0f, 4.0f);
 }
diff --git a/test/shader_io/fragment_output_locations_struct.wgsl.expected.msl b/test/shader_io/fragment_output_locations_struct.wgsl.expected.msl
index 6cfad1a..1cf0682 100644
--- a/test/shader_io/fragment_output_locations_struct.wgsl.expected.msl
+++ b/test/shader_io/fragment_output_locations_struct.wgsl.expected.msl
@@ -7,6 +7,7 @@
   float loc2;
   float4 loc3;
 };
+
 struct tint_symbol_1 {
   int loc0 [[color(0)]];
   uint loc1 [[color(1)]];
diff --git a/test/shader_io/fragment_output_mixed.wgsl.expected.msl b/test/shader_io/fragment_output_mixed.wgsl.expected.msl
index c7d2a13..591468c 100644
--- a/test/shader_io/fragment_output_mixed.wgsl.expected.msl
+++ b/test/shader_io/fragment_output_mixed.wgsl.expected.msl
@@ -9,6 +9,7 @@
   uint sample_mask;
   float4 loc3;
 };
+
 struct tint_symbol_1 {
   int loc0 [[color(0)]];
   uint loc1 [[color(1)]];
diff --git a/test/shader_io/interpolate_input_struct.wgsl.expected.msl b/test/shader_io/interpolate_input_struct.wgsl.expected.msl
index edc350f..4f68cb4 100644
--- a/test/shader_io/interpolate_input_struct.wgsl.expected.msl
+++ b/test/shader_io/interpolate_input_struct.wgsl.expected.msl
@@ -11,6 +11,7 @@
   float linear_centroid;
   float linear_sample;
 };
+
 struct tint_symbol_2 {
   float none [[user(locn0)]];
   float flat [[user(locn1)]] [[flat]];
diff --git a/test/shader_io/interpolate_integers.wgsl.expected.msl b/test/shader_io/interpolate_integers.wgsl.expected.msl
index 49980af..4a2e39e 100644
--- a/test/shader_io/interpolate_integers.wgsl.expected.msl
+++ b/test/shader_io/interpolate_integers.wgsl.expected.msl
@@ -8,6 +8,7 @@
   uint4 vu;
   float4 pos;
 };
+
 struct tint_symbol {
   int i [[user(locn0)]] [[flat]];
   uint u [[user(locn1)]] [[flat]];
@@ -15,15 +16,6 @@
   uint4 vu [[user(locn3)]] [[flat]];
   float4 pos [[position]];
 };
-struct tint_symbol_2 {
-  int i [[user(locn0)]] [[flat]];
-  uint u [[user(locn1)]] [[flat]];
-  int4 vi [[user(locn2)]] [[flat]];
-  uint4 vu [[user(locn3)]] [[flat]];
-};
-struct tint_symbol_3 {
-  int value [[color(0)]];
-};
 
 Interface vert_main_inner() {
   Interface const tint_symbol_4 = {};
@@ -41,6 +33,17 @@
   return wrapper_result;
 }
 
+struct tint_symbol_2 {
+  int i [[user(locn0)]] [[flat]];
+  uint u [[user(locn1)]] [[flat]];
+  int4 vi [[user(locn2)]] [[flat]];
+  uint4 vu [[user(locn3)]] [[flat]];
+};
+
+struct tint_symbol_3 {
+  int value [[color(0)]];
+};
+
 int frag_main_inner(Interface inputs) {
   return inputs.i;
 }
diff --git a/test/shader_io/interpolate_return_struct.wgsl.expected.msl b/test/shader_io/interpolate_return_struct.wgsl.expected.msl
index afac16e..4c51b62 100644
--- a/test/shader_io/interpolate_return_struct.wgsl.expected.msl
+++ b/test/shader_io/interpolate_return_struct.wgsl.expected.msl
@@ -12,6 +12,7 @@
   float linear_centroid;
   float linear_sample;
 };
+
 struct tint_symbol_1 {
   float none [[user(locn0)]];
   float flat [[user(locn1)]] [[flat]];
diff --git a/test/shader_io/invariant_struct_member.wgsl.expected.msl b/test/shader_io/invariant_struct_member.wgsl.expected.msl
index c85f9a1..666b8dd 100644
--- a/test/shader_io/invariant_struct_member.wgsl.expected.msl
+++ b/test/shader_io/invariant_struct_member.wgsl.expected.msl
@@ -11,6 +11,7 @@
 struct Out {
   float4 pos;
 };
+
 struct tint_symbol_1 {
   float4 pos [[position]] TINT_INVARIANT;
 };
diff --git a/test/shader_io/shared_struct_different_stages.wgsl.expected.msl b/test/shader_io/shared_struct_different_stages.wgsl.expected.msl
index c4388b7..4dc3f1f 100644
--- a/test/shader_io/shared_struct_different_stages.wgsl.expected.msl
+++ b/test/shader_io/shared_struct_different_stages.wgsl.expected.msl
@@ -6,15 +6,12 @@
   float col2;
   float4 pos;
 };
+
 struct tint_symbol {
   float col1 [[user(locn1)]];
   float col2 [[user(locn2)]];
   float4 pos [[position]];
 };
-struct tint_symbol_2 {
-  float col1 [[user(locn1)]];
-  float col2 [[user(locn2)]];
-};
 
 Interface vert_main_inner() {
   Interface const tint_symbol_3 = {.col1=0.400000006f, .col2=0.600000024f, .pos=float4()};
@@ -30,6 +27,11 @@
   return wrapper_result;
 }
 
+struct tint_symbol_2 {
+  float col1 [[user(locn1)]];
+  float col2 [[user(locn2)]];
+};
+
 void frag_main_inner(Interface colors) {
   float const r = colors.col1;
   float const g = colors.col2;
diff --git a/test/shader_io/shared_struct_helper_function.wgsl.expected.msl b/test/shader_io/shared_struct_helper_function.wgsl.expected.msl
index 76e7412..e2f4365 100644
--- a/test/shader_io/shared_struct_helper_function.wgsl.expected.msl
+++ b/test/shader_io/shared_struct_helper_function.wgsl.expected.msl
@@ -5,20 +5,17 @@
   float4 pos;
   int loc0;
 };
-struct tint_symbol {
-  int loc0 [[user(locn0)]] [[flat]];
-  float4 pos [[position]];
-};
-struct tint_symbol_1 {
-  int loc0 [[user(locn0)]] [[flat]];
-  float4 pos [[position]];
-};
 
 VertexOutput foo(float x) {
   VertexOutput const tint_symbol_2 = {.pos=float4(x, x, x, 1.0f), .loc0=42};
   return tint_symbol_2;
 }
 
+struct tint_symbol {
+  int loc0 [[user(locn0)]] [[flat]];
+  float4 pos [[position]];
+};
+
 VertexOutput vert_main1_inner() {
   return foo(0.5f);
 }
@@ -31,6 +28,11 @@
   return wrapper_result;
 }
 
+struct tint_symbol_1 {
+  int loc0 [[user(locn0)]] [[flat]];
+  float4 pos [[position]];
+};
+
 VertexOutput vert_main2_inner() {
   return foo(0.25f);
 }
diff --git a/test/shader_io/shared_struct_storage_buffer.wgsl.expected.msl b/test/shader_io/shared_struct_storage_buffer.wgsl.expected.msl
index 6de6258..7b765f6 100644
--- a/test/shader_io/shared_struct_storage_buffer.wgsl.expected.msl
+++ b/test/shader_io/shared_struct_storage_buffer.wgsl.expected.msl
@@ -8,6 +8,7 @@
   /* 0x0080 */ float4 v;
   /* 0x0090 */ int8_t tint_pad_1[112];
 };
+
 struct tint_symbol_1 {
   float f [[user(locn0)]];
   uint u [[user(locn1)]] [[flat]];
diff --git a/test/shader_io/vertex_input_builtins_struct.wgsl.expected.msl b/test/shader_io/vertex_input_builtins_struct.wgsl.expected.msl
index bd97441..6f67049 100644
--- a/test/shader_io/vertex_input_builtins_struct.wgsl.expected.msl
+++ b/test/shader_io/vertex_input_builtins_struct.wgsl.expected.msl
@@ -5,6 +5,7 @@
   uint vertex_index;
   uint instance_index;
 };
+
 struct tint_symbol_1 {
   float4 value [[position]];
 };
diff --git a/test/shader_io/vertex_input_locations.wgsl.expected.msl b/test/shader_io/vertex_input_locations.wgsl.expected.msl
index a7e8658..f45c47e 100644
--- a/test/shader_io/vertex_input_locations.wgsl.expected.msl
+++ b/test/shader_io/vertex_input_locations.wgsl.expected.msl
@@ -7,6 +7,7 @@
   float loc2 [[attribute(2)]];
   float4 loc3 [[attribute(3)]];
 };
+
 struct tint_symbol_3 {
   float4 value [[position]];
 };
diff --git a/test/shader_io/vertex_input_locations_struct.wgsl.expected.msl b/test/shader_io/vertex_input_locations_struct.wgsl.expected.msl
index c85b7f9..0391ee4 100644
--- a/test/shader_io/vertex_input_locations_struct.wgsl.expected.msl
+++ b/test/shader_io/vertex_input_locations_struct.wgsl.expected.msl
@@ -7,12 +7,14 @@
   float loc2;
   float4 loc3;
 };
+
 struct tint_symbol_2 {
   int loc0 [[attribute(0)]];
   uint loc1 [[attribute(1)]];
   float loc2 [[attribute(2)]];
   float4 loc3 [[attribute(3)]];
 };
+
 struct tint_symbol_3 {
   float4 value [[position]];
 };
diff --git a/test/shader_io/vertex_input_mixed.wgsl.expected.msl b/test/shader_io/vertex_input_mixed.wgsl.expected.msl
index 07dd9b9..03c4e97 100644
--- a/test/shader_io/vertex_input_mixed.wgsl.expected.msl
+++ b/test/shader_io/vertex_input_mixed.wgsl.expected.msl
@@ -5,16 +5,19 @@
   uint vertex_index;
   int loc0;
 };
+
 struct VertexInputs1 {
   float loc2;
   float4 loc3;
 };
+
 struct tint_symbol_2 {
   int loc0 [[attribute(0)]];
   uint loc1 [[attribute(1)]];
   float loc2 [[attribute(2)]];
   float4 loc3 [[attribute(3)]];
 };
+
 struct tint_symbol_3 {
   float4 value [[position]];
 };
diff --git a/test/shader_io/vertex_output_builtins_struct.wgsl.expected.msl b/test/shader_io/vertex_output_builtins_struct.wgsl.expected.msl
index d077ccc..2a8b1bc 100644
--- a/test/shader_io/vertex_output_builtins_struct.wgsl.expected.msl
+++ b/test/shader_io/vertex_output_builtins_struct.wgsl.expected.msl
@@ -4,6 +4,7 @@
 struct VertexOutputs {
   float4 position;
 };
+
 struct tint_symbol_1 {
   float4 position [[position]];
 };
diff --git a/test/shader_io/vertex_output_locations_struct.wgsl.expected.msl b/test/shader_io/vertex_output_locations_struct.wgsl.expected.msl
index 834f345..b24884e 100644
--- a/test/shader_io/vertex_output_locations_struct.wgsl.expected.msl
+++ b/test/shader_io/vertex_output_locations_struct.wgsl.expected.msl
@@ -8,6 +8,7 @@
   float4 loc3;
   float4 position;
 };
+
 struct tint_symbol_1 {
   int loc0 [[user(locn0)]] [[flat]];
   uint loc1 [[user(locn1)]] [[flat]];
diff --git a/test/shadowing/alias/let.wgsl.expected.msl b/test/shadowing/alias/let.wgsl.expected.msl
index 292a0ba..acd894e 100644
--- a/test/shadowing/alias/let.wgsl.expected.msl
+++ b/test/shadowing/alias/let.wgsl.expected.msl
@@ -1,7 +1,6 @@
 #include <metal_stdlib>
 
 using namespace metal;
-
 void f() {
   {
     int const a_1 = int();
diff --git a/test/shadowing/alias/param.wgsl.expected.msl b/test/shadowing/alias/param.wgsl.expected.msl
index 770f18e..111b1e8 100644
--- a/test/shadowing/alias/param.wgsl.expected.msl
+++ b/test/shadowing/alias/param.wgsl.expected.msl
@@ -1,7 +1,6 @@
 #include <metal_stdlib>
 
 using namespace metal;
-
 void f(int a_1) {
   int const b = a_1;
 }
diff --git a/test/shadowing/alias/var.wgsl.expected.msl b/test/shadowing/alias/var.wgsl.expected.msl
index 9958607..d507d61 100644
--- a/test/shadowing/alias/var.wgsl.expected.msl
+++ b/test/shadowing/alias/var.wgsl.expected.msl
@@ -1,7 +1,6 @@
 #include <metal_stdlib>
 
 using namespace metal;
-
 void f() {
   {
     int a_1 = int();
diff --git a/test/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_body.wgsl.expected.msl b/test/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_body.wgsl.expected.msl
index dad374d..acf0cc6 100644
--- a/test/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_body.wgsl.expected.msl
+++ b/test/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_body.wgsl.expected.msl
@@ -4,12 +4,15 @@
 struct Uniforms {
   /* 0x0000 */ uint i;
 };
+
 struct InnerS {
   int v;
 };
+
 struct tint_array_wrapper {
   InnerS arr[8];
 };
+
 struct OuterS {
   tint_array_wrapper a1;
 };
diff --git a/test/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_continuing.wgsl.expected.msl b/test/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_continuing.wgsl.expected.msl
index 6ed5562..60c282a 100644
--- a/test/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_continuing.wgsl.expected.msl
+++ b/test/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_continuing.wgsl.expected.msl
@@ -4,12 +4,15 @@
 struct Uniforms {
   /* 0x0000 */ uint i;
 };
+
 struct InnerS {
   int v;
 };
+
 struct tint_array_wrapper {
   InnerS arr[8];
 };
+
 struct OuterS {
   tint_array_wrapper a1;
 };
diff --git a/test/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_init.wgsl.expected.msl b/test/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_init.wgsl.expected.msl
index 7e27cf0..8f33141 100644
--- a/test/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_init.wgsl.expected.msl
+++ b/test/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_init.wgsl.expected.msl
@@ -4,12 +4,15 @@
 struct Uniforms {
   /* 0x0000 */ uint i;
 };
+
 struct InnerS {
   int v;
 };
+
 struct tint_array_wrapper {
   InnerS arr[8];
 };
+
 struct OuterS {
   tint_array_wrapper a1;
 };
diff --git a/test/statements/assign/indexed_assign_to_array_in_struct/indexing_with_side_effect_func.wgsl.expected.msl b/test/statements/assign/indexed_assign_to_array_in_struct/indexing_with_side_effect_func.wgsl.expected.msl
index b01712d..7d3a1ad 100644
--- a/test/statements/assign/indexed_assign_to_array_in_struct/indexing_with_side_effect_func.wgsl.expected.msl
+++ b/test/statements/assign/indexed_assign_to_array_in_struct/indexing_with_side_effect_func.wgsl.expected.msl
@@ -5,18 +5,23 @@
   /* 0x0000 */ uint i;
   /* 0x0004 */ uint j;
 };
+
 struct InnerS {
   int v;
 };
+
 struct tint_array_wrapper {
   InnerS arr[8];
 };
+
 struct S1 {
   tint_array_wrapper a2;
 };
+
 struct tint_array_wrapper_1 {
   S1 arr[8];
 };
+
 struct OuterS {
   tint_array_wrapper_1 a1;
 };
diff --git a/test/statements/assign/indexed_assign_to_array_in_struct/struct_array.wgsl.expected.msl b/test/statements/assign/indexed_assign_to_array_in_struct/struct_array.wgsl.expected.msl
index 9430b2c..17a3a5e 100644
--- a/test/statements/assign/indexed_assign_to_array_in_struct/struct_array.wgsl.expected.msl
+++ b/test/statements/assign/indexed_assign_to_array_in_struct/struct_array.wgsl.expected.msl
@@ -4,12 +4,15 @@
 struct Uniforms {
   /* 0x0000 */ uint i;
 };
+
 struct InnerS {
   int v;
 };
+
 struct tint_array_wrapper {
   InnerS arr[8];
 };
+
 struct OuterS {
   tint_array_wrapper a1;
 };
diff --git a/test/statements/assign/indexed_assign_to_array_in_struct/struct_array_array.wgsl.expected.msl b/test/statements/assign/indexed_assign_to_array_in_struct/struct_array_array.wgsl.expected.msl
index 020719b..12691cd 100644
--- a/test/statements/assign/indexed_assign_to_array_in_struct/struct_array_array.wgsl.expected.msl
+++ b/test/statements/assign/indexed_assign_to_array_in_struct/struct_array_array.wgsl.expected.msl
@@ -5,15 +5,19 @@
   /* 0x0000 */ uint i;
   /* 0x0004 */ uint j;
 };
+
 struct InnerS {
   int v;
 };
+
 struct tint_array_wrapper_1 {
   InnerS arr[8];
 };
+
 struct tint_array_wrapper {
   tint_array_wrapper_1 arr[8];
 };
+
 struct OuterS {
   tint_array_wrapper a1;
 };
diff --git a/test/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct.wgsl.expected.msl b/test/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct.wgsl.expected.msl
index c2ee63f..7686939 100644
--- a/test/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct.wgsl.expected.msl
+++ b/test/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct.wgsl.expected.msl
@@ -4,15 +4,19 @@
 struct Uniforms {
   /* 0x0000 */ uint i;
 };
+
 struct InnerS {
   int v;
 };
+
 struct S1 {
   InnerS s2;
 };
+
 struct tint_array_wrapper {
   S1 arr[8];
 };
+
 struct OuterS {
   tint_array_wrapper a1;
 };
diff --git a/test/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct_array.wgsl.expected.msl b/test/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct_array.wgsl.expected.msl
index 54092b5..a638c3f 100644
--- a/test/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct_array.wgsl.expected.msl
+++ b/test/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct_array.wgsl.expected.msl
@@ -5,18 +5,23 @@
   /* 0x0000 */ uint i;
   /* 0x0004 */ uint j;
 };
+
 struct InnerS {
   int v;
 };
+
 struct tint_array_wrapper {
   InnerS arr[8];
 };
+
 struct S1 {
   tint_array_wrapper a2;
 };
+
 struct tint_array_wrapper_1 {
   S1 arr[8];
 };
+
 struct OuterS {
   tint_array_wrapper_1 a1;
 };
diff --git a/test/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array.wgsl.expected.msl b/test/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array.wgsl.expected.msl
index ffa277b..6d0fc32 100644
--- a/test/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array.wgsl.expected.msl
+++ b/test/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array.wgsl.expected.msl
@@ -4,9 +4,11 @@
 struct Uniforms {
   /* 0x0000 */ uint i;
 };
+
 struct InnerS {
   /* 0x0000 */ int v;
 };
+
 struct OuterS {
   /* 0x0000 */ InnerS a1[1];
 };
diff --git a/test/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array_struct_array.wgsl.expected.msl b/test/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array_struct_array.wgsl.expected.msl
index 1f40a62..2b23084 100644
--- a/test/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array_struct_array.wgsl.expected.msl
+++ b/test/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array_struct_array.wgsl.expected.msl
@@ -5,15 +5,19 @@
   /* 0x0000 */ uint i;
   /* 0x0004 */ uint j;
 };
+
 struct InnerS {
   /* 0x0000 */ int v;
 };
+
 struct tint_array_wrapper {
   /* 0x0000 */ InnerS arr[8];
 };
+
 struct S1 {
   /* 0x0000 */ tint_array_wrapper a2;
 };
+
 struct OuterS {
   /* 0x0000 */ S1 a1[1];
 };
diff --git a/test/statements/assign/indexed_assign_to_array_in_struct/struct_matrix.wgsl.expected.msl b/test/statements/assign/indexed_assign_to_array_in_struct/struct_matrix.wgsl.expected.msl
index 5563dcf..226c644 100644
--- a/test/statements/assign/indexed_assign_to_array_in_struct/struct_matrix.wgsl.expected.msl
+++ b/test/statements/assign/indexed_assign_to_array_in_struct/struct_matrix.wgsl.expected.msl
@@ -4,6 +4,7 @@
 struct Uniforms {
   /* 0x0000 */ uint i;
 };
+
 struct OuterS {
   float2x4 m1;
 };
diff --git a/test/statements/assign/indexed_assign_to_array_in_struct/struct_multiple_arrays.wgsl.expected.msl b/test/statements/assign/indexed_assign_to_array_in_struct/struct_multiple_arrays.wgsl.expected.msl
index ec021bc..3a268a0 100644
--- a/test/statements/assign/indexed_assign_to_array_in_struct/struct_multiple_arrays.wgsl.expected.msl
+++ b/test/statements/assign/indexed_assign_to_array_in_struct/struct_multiple_arrays.wgsl.expected.msl
@@ -4,12 +4,15 @@
 struct Uniforms {
   /* 0x0000 */ uint i;
 };
+
 struct InnerS {
   int v;
 };
+
 struct tint_array_wrapper {
   InnerS arr[8];
 };
+
 struct OuterS {
   tint_array_wrapper a1;
   tint_array_wrapper a2;
diff --git a/test/statements/assign/indexed_assign_to_array_in_struct/struct_struct_array.wgsl.expected.msl b/test/statements/assign/indexed_assign_to_array_in_struct/struct_struct_array.wgsl.expected.msl
index 9e85490..2d164b2 100644
--- a/test/statements/assign/indexed_assign_to_array_in_struct/struct_struct_array.wgsl.expected.msl
+++ b/test/statements/assign/indexed_assign_to_array_in_struct/struct_struct_array.wgsl.expected.msl
@@ -4,15 +4,19 @@
 struct Uniforms {
   /* 0x0000 */ uint i;
 };
+
 struct InnerS {
   int v;
 };
+
 struct tint_array_wrapper {
   InnerS arr[8];
 };
+
 struct S1 {
   tint_array_wrapper a;
 };
+
 struct OuterS {
   S1 s2;
 };
diff --git a/test/statements/assign/indexed_assign_to_array_in_struct/struct_vector.wgsl.expected.msl b/test/statements/assign/indexed_assign_to_array_in_struct/struct_vector.wgsl.expected.msl
index 4e61683..4999967 100644
--- a/test/statements/assign/indexed_assign_to_array_in_struct/struct_vector.wgsl.expected.msl
+++ b/test/statements/assign/indexed_assign_to_array_in_struct/struct_vector.wgsl.expected.msl
@@ -4,6 +4,7 @@
 struct Uniforms {
   /* 0x0000 */ uint i;
 };
+
 struct OuterS {
   float3 v1;
 };
diff --git a/test/statements/assign/indexed_assign_to_array_in_struct/vector_assign.wgsl.expected.msl b/test/statements/assign/indexed_assign_to_array_in_struct/vector_assign.wgsl.expected.msl
index 584841e..bdb67f8 100644
--- a/test/statements/assign/indexed_assign_to_array_in_struct/vector_assign.wgsl.expected.msl
+++ b/test/statements/assign/indexed_assign_to_array_in_struct/vector_assign.wgsl.expected.msl
@@ -4,9 +4,11 @@
 struct Uniforms {
   /* 0x0000 */ uint i;
 };
+
 struct tint_array_wrapper {
   uint arr[8];
 };
+
 struct OuterS {
   tint_array_wrapper a1;
 };
diff --git a/test/statements/assign/indexed_assign_to_array_in_struct/via_pointer.wgsl.expected.msl b/test/statements/assign/indexed_assign_to_array_in_struct/via_pointer.wgsl.expected.msl
index d42fec8..2f71f6e 100644
--- a/test/statements/assign/indexed_assign_to_array_in_struct/via_pointer.wgsl.expected.msl
+++ b/test/statements/assign/indexed_assign_to_array_in_struct/via_pointer.wgsl.expected.msl
@@ -4,12 +4,15 @@
 struct Uniforms {
   /* 0x0000 */ uint i;
 };
+
 struct InnerS {
   int v;
 };
+
 struct tint_array_wrapper {
   InnerS arr[8];
 };
+
 struct OuterS {
   tint_array_wrapper a1;
 };
diff --git a/test/statements/assign/indexed_assign_to_array_in_struct/via_pointer_arg.wgsl.expected.msl b/test/statements/assign/indexed_assign_to_array_in_struct/via_pointer_arg.wgsl.expected.msl
index d6c3a35..6ceb36f 100644
--- a/test/statements/assign/indexed_assign_to_array_in_struct/via_pointer_arg.wgsl.expected.msl
+++ b/test/statements/assign/indexed_assign_to_array_in_struct/via_pointer_arg.wgsl.expected.msl
@@ -4,12 +4,15 @@
 struct Uniforms {
   /* 0x0000 */ uint i;
 };
+
 struct InnerS {
   int v;
 };
+
 struct tint_array_wrapper {
   InnerS arr[8];
 };
+
 struct OuterS {
   tint_array_wrapper a1;
 };
diff --git a/test/struct/type_constructor.wgsl.expected.msl b/test/struct/type_constructor.wgsl.expected.msl
index 69583e6..e36df06 100644
--- a/test/struct/type_constructor.wgsl.expected.msl
+++ b/test/struct/type_constructor.wgsl.expected.msl
@@ -7,21 +7,26 @@
   int c;
   int d;
 };
+
 struct S2 {
   int e;
   S1 f;
 };
+
 struct S3 {
   int g;
   S1 h;
   S2 i;
 };
+
 struct tint_array_wrapper {
   int arr[2];
 };
+
 struct T {
   tint_array_wrapper a;
 };
+
 struct tint_array_wrapper_1 {
   T arr[2];
 };
diff --git a/test/types/function_scope_declarations.wgsl.expected.msl b/test/types/function_scope_declarations.wgsl.expected.msl
index 687cea4..fc5a302 100644
--- a/test/types/function_scope_declarations.wgsl.expected.msl
+++ b/test/types/function_scope_declarations.wgsl.expected.msl
@@ -4,6 +4,7 @@
 struct S {
   float a;
 };
+
 struct tint_array_wrapper {
   float arr[4];
 };
diff --git a/test/types/module_scope_let.wgsl.expected.msl b/test/types/module_scope_let.wgsl.expected.msl
index 109ae08..547c797 100644
--- a/test/types/module_scope_let.wgsl.expected.msl
+++ b/test/types/module_scope_let.wgsl.expected.msl
@@ -4,20 +4,31 @@
 struct S {
   float a;
 };
+
+constant bool bool_let = bool();
+
+constant int i32_let = int();
+
+constant uint u32_let = uint();
+
+constant float f32_let = float();
+
+constant int2 v2i32_let = int2();
+
+constant uint3 v3u32_let = uint3();
+
+constant float4 v4f32_let = float4();
+
+constant float3x4 m3x4_let = float3x4();
+
 struct tint_array_wrapper {
   float arr[4];
 };
 
-constant bool bool_let = bool();
-constant int i32_let = int();
-constant uint u32_let = uint();
-constant float f32_let = float();
-constant int2 v2i32_let = int2();
-constant uint3 v3u32_let = uint3();
-constant float4 v4f32_let = float4();
-constant float3x4 m3x4_let = float3x4();
 constant tint_array_wrapper arr_let = {.arr={}};
+
 constant S struct_let = {};
+
 kernel void tint_symbol() {
   return;
 }
diff --git a/test/types/module_scope_var.wgsl.expected.msl b/test/types/module_scope_var.wgsl.expected.msl
index 6f48ccd..4fcfa9e 100644
--- a/test/types/module_scope_var.wgsl.expected.msl
+++ b/test/types/module_scope_var.wgsl.expected.msl
@@ -4,6 +4,7 @@
 struct S {
   float a;
 };
+
 struct tint_array_wrapper {
   float arr[4];
 };
diff --git a/test/types/module_scope_var_initializers.wgsl.expected.msl b/test/types/module_scope_var_initializers.wgsl.expected.msl
index 3f96def..afbc577 100644
--- a/test/types/module_scope_var_initializers.wgsl.expected.msl
+++ b/test/types/module_scope_var_initializers.wgsl.expected.msl
@@ -4,6 +4,7 @@
 struct S {
   float a;
 };
+
 struct tint_array_wrapper {
   float arr[4];
 };
diff --git a/test/types/parameters.wgsl.expected.msl b/test/types/parameters.wgsl.expected.msl
index 18d5a35..3c1db25 100644
--- a/test/types/parameters.wgsl.expected.msl
+++ b/test/types/parameters.wgsl.expected.msl
@@ -4,6 +4,7 @@
 struct S {
   float a;
 };
+
 struct tint_array_wrapper {
   float arr[4];
 };
diff --git a/test/types/return_types.wgsl.expected.msl b/test/types/return_types.wgsl.expected.msl
index 4d43323..2d5d9cb 100644
--- a/test/types/return_types.wgsl.expected.msl
+++ b/test/types/return_types.wgsl.expected.msl
@@ -4,9 +4,6 @@
 struct S {
   float a;
 };
-struct tint_array_wrapper {
-  float arr[4];
-};
 
 bool ret_bool() {
   return bool();
@@ -40,6 +37,10 @@
   return float2x3();
 }
 
+struct tint_array_wrapper {
+  float arr[4];
+};
+
 tint_array_wrapper ret_arr() {
   tint_array_wrapper const tint_symbol_1 = {.arr={}};
   return tint_symbol_1;
diff --git a/test/types/struct_members.wgsl.expected.msl b/test/types/struct_members.wgsl.expected.msl
index 59af17d..a43d5e0 100644
--- a/test/types/struct_members.wgsl.expected.msl
+++ b/test/types/struct_members.wgsl.expected.msl
@@ -4,9 +4,11 @@
 struct S_inner {
   float a;
 };
+
 struct tint_array_wrapper {
   float arr[4];
 };
+
 struct S {
   bool member_bool;
   int member_i32;
diff --git a/test/var/inferred/function.wgsl.expected.msl b/test/var/inferred/function.wgsl.expected.msl
index 6786e04..ac84088 100644
--- a/test/var/inferred/function.wgsl.expected.msl
+++ b/test/var/inferred/function.wgsl.expected.msl
@@ -4,12 +4,10 @@
 struct MyStruct {
   float f1;
 };
+
 struct tint_array_wrapper {
   float arr[10];
 };
-struct tint_symbol_1 {
-  float4 value [[color(0)]];
-};
 
 int ret_i32() {
   return 1;
@@ -51,6 +49,10 @@
   tint_array_wrapper v15 = ret_MyArray();
 }
 
+struct tint_symbol_1 {
+  float4 value [[color(0)]];
+};
+
 float4 tint_symbol_inner() {
   return float4(0.0f, 0.0f, 0.0f, 0.0f);
 }
diff --git a/test/var/override/named/no_init/bool.wgsl.expected.msl b/test/var/override/named/no_init/bool.wgsl.expected.msl
index 95ce385..014e3b1 100644
--- a/test/var/override/named/no_init/bool.wgsl.expected.msl
+++ b/test/var/override/named/no_init/bool.wgsl.expected.msl
@@ -2,6 +2,7 @@
 
 using namespace metal;
 constant bool o [[function_constant(0)]];
+
 kernel void tint_symbol() {
   return;
 }
diff --git a/test/var/override/named/no_init/f32.wgsl.expected.msl b/test/var/override/named/no_init/f32.wgsl.expected.msl
index 2ed922c..ecf89c4 100644
--- a/test/var/override/named/no_init/f32.wgsl.expected.msl
+++ b/test/var/override/named/no_init/f32.wgsl.expected.msl
@@ -2,6 +2,7 @@
 
 using namespace metal;
 constant float o [[function_constant(0)]];
+
 kernel void tint_symbol() {
   return;
 }
diff --git a/test/var/override/named/no_init/i32.wgsl.expected.msl b/test/var/override/named/no_init/i32.wgsl.expected.msl
index b5b1fae..6df39fe 100644
--- a/test/var/override/named/no_init/i32.wgsl.expected.msl
+++ b/test/var/override/named/no_init/i32.wgsl.expected.msl
@@ -2,6 +2,7 @@
 
 using namespace metal;
 constant int o [[function_constant(0)]];
+
 kernel void tint_symbol() {
   return;
 }
diff --git a/test/var/override/named/no_init/u32.wgsl.expected.msl b/test/var/override/named/no_init/u32.wgsl.expected.msl
index 918348c..8254bed 100644
--- a/test/var/override/named/no_init/u32.wgsl.expected.msl
+++ b/test/var/override/named/no_init/u32.wgsl.expected.msl
@@ -2,6 +2,7 @@
 
 using namespace metal;
 constant uint o [[function_constant(0)]];
+
 kernel void tint_symbol() {
   return;
 }
diff --git a/test/var/override/named/val_init/bool.wgsl.expected.msl b/test/var/override/named/val_init/bool.wgsl.expected.msl
index 95ce385..014e3b1 100644
--- a/test/var/override/named/val_init/bool.wgsl.expected.msl
+++ b/test/var/override/named/val_init/bool.wgsl.expected.msl
@@ -2,6 +2,7 @@
 
 using namespace metal;
 constant bool o [[function_constant(0)]];
+
 kernel void tint_symbol() {
   return;
 }
diff --git a/test/var/override/named/val_init/f32.wgsl.expected.msl b/test/var/override/named/val_init/f32.wgsl.expected.msl
index 2ed922c..ecf89c4 100644
--- a/test/var/override/named/val_init/f32.wgsl.expected.msl
+++ b/test/var/override/named/val_init/f32.wgsl.expected.msl
@@ -2,6 +2,7 @@
 
 using namespace metal;
 constant float o [[function_constant(0)]];
+
 kernel void tint_symbol() {
   return;
 }
diff --git a/test/var/override/named/val_init/i32.wgsl.expected.msl b/test/var/override/named/val_init/i32.wgsl.expected.msl
index b5b1fae..6df39fe 100644
--- a/test/var/override/named/val_init/i32.wgsl.expected.msl
+++ b/test/var/override/named/val_init/i32.wgsl.expected.msl
@@ -2,6 +2,7 @@
 
 using namespace metal;
 constant int o [[function_constant(0)]];
+
 kernel void tint_symbol() {
   return;
 }
diff --git a/test/var/override/named/val_init/u32.wgsl.expected.msl b/test/var/override/named/val_init/u32.wgsl.expected.msl
index 918348c..8254bed 100644
--- a/test/var/override/named/val_init/u32.wgsl.expected.msl
+++ b/test/var/override/named/val_init/u32.wgsl.expected.msl
@@ -2,6 +2,7 @@
 
 using namespace metal;
 constant uint o [[function_constant(0)]];
+
 kernel void tint_symbol() {
   return;
 }
diff --git a/test/var/override/named/zero_init/bool.wgsl.expected.msl b/test/var/override/named/zero_init/bool.wgsl.expected.msl
index 95ce385..014e3b1 100644
--- a/test/var/override/named/zero_init/bool.wgsl.expected.msl
+++ b/test/var/override/named/zero_init/bool.wgsl.expected.msl
@@ -2,6 +2,7 @@
 
 using namespace metal;
 constant bool o [[function_constant(0)]];
+
 kernel void tint_symbol() {
   return;
 }
diff --git a/test/var/override/named/zero_init/f32.wgsl.expected.msl b/test/var/override/named/zero_init/f32.wgsl.expected.msl
index 2ed922c..ecf89c4 100644
--- a/test/var/override/named/zero_init/f32.wgsl.expected.msl
+++ b/test/var/override/named/zero_init/f32.wgsl.expected.msl
@@ -2,6 +2,7 @@
 
 using namespace metal;
 constant float o [[function_constant(0)]];
+
 kernel void tint_symbol() {
   return;
 }
diff --git a/test/var/override/named/zero_init/i32.wgsl.expected.msl b/test/var/override/named/zero_init/i32.wgsl.expected.msl
index b5b1fae..6df39fe 100644
--- a/test/var/override/named/zero_init/i32.wgsl.expected.msl
+++ b/test/var/override/named/zero_init/i32.wgsl.expected.msl
@@ -2,6 +2,7 @@
 
 using namespace metal;
 constant int o [[function_constant(0)]];
+
 kernel void tint_symbol() {
   return;
 }
diff --git a/test/var/override/named/zero_init/u32.wgsl.expected.msl b/test/var/override/named/zero_init/u32.wgsl.expected.msl
index 918348c..8254bed 100644
--- a/test/var/override/named/zero_init/u32.wgsl.expected.msl
+++ b/test/var/override/named/zero_init/u32.wgsl.expected.msl
@@ -2,6 +2,7 @@
 
 using namespace metal;
 constant uint o [[function_constant(0)]];
+
 kernel void tint_symbol() {
   return;
 }
diff --git a/test/var/override/numbered/no_init/bool.wgsl.expected.msl b/test/var/override/numbered/no_init/bool.wgsl.expected.msl
index d6cbfe9..28e456b 100644
--- a/test/var/override/numbered/no_init/bool.wgsl.expected.msl
+++ b/test/var/override/numbered/no_init/bool.wgsl.expected.msl
@@ -2,6 +2,7 @@
 
 using namespace metal;
 constant bool o [[function_constant(1234)]];
+
 kernel void tint_symbol() {
   return;
 }
diff --git a/test/var/override/numbered/no_init/f32.wgsl.expected.msl b/test/var/override/numbered/no_init/f32.wgsl.expected.msl
index 41134e2..ce09e6e 100644
--- a/test/var/override/numbered/no_init/f32.wgsl.expected.msl
+++ b/test/var/override/numbered/no_init/f32.wgsl.expected.msl
@@ -2,6 +2,7 @@
 
 using namespace metal;
 constant float o [[function_constant(1234)]];
+
 kernel void tint_symbol() {
   return;
 }
diff --git a/test/var/override/numbered/no_init/i32.wgsl.expected.msl b/test/var/override/numbered/no_init/i32.wgsl.expected.msl
index 812c466..3e84752 100644
--- a/test/var/override/numbered/no_init/i32.wgsl.expected.msl
+++ b/test/var/override/numbered/no_init/i32.wgsl.expected.msl
@@ -2,6 +2,7 @@
 
 using namespace metal;
 constant int o [[function_constant(1234)]];
+
 kernel void tint_symbol() {
   return;
 }
diff --git a/test/var/override/numbered/no_init/u32.wgsl.expected.msl b/test/var/override/numbered/no_init/u32.wgsl.expected.msl
index 799a682..51e2d72 100644
--- a/test/var/override/numbered/no_init/u32.wgsl.expected.msl
+++ b/test/var/override/numbered/no_init/u32.wgsl.expected.msl
@@ -2,6 +2,7 @@
 
 using namespace metal;
 constant uint o [[function_constant(1234)]];
+
 kernel void tint_symbol() {
   return;
 }
diff --git a/test/var/override/numbered/val_init/bool.wgsl.expected.msl b/test/var/override/numbered/val_init/bool.wgsl.expected.msl
index d6cbfe9..28e456b 100644
--- a/test/var/override/numbered/val_init/bool.wgsl.expected.msl
+++ b/test/var/override/numbered/val_init/bool.wgsl.expected.msl
@@ -2,6 +2,7 @@
 
 using namespace metal;
 constant bool o [[function_constant(1234)]];
+
 kernel void tint_symbol() {
   return;
 }
diff --git a/test/var/override/numbered/val_init/f32.wgsl.expected.msl b/test/var/override/numbered/val_init/f32.wgsl.expected.msl
index 41134e2..ce09e6e 100644
--- a/test/var/override/numbered/val_init/f32.wgsl.expected.msl
+++ b/test/var/override/numbered/val_init/f32.wgsl.expected.msl
@@ -2,6 +2,7 @@
 
 using namespace metal;
 constant float o [[function_constant(1234)]];
+
 kernel void tint_symbol() {
   return;
 }
diff --git a/test/var/override/numbered/val_init/i32.wgsl.expected.msl b/test/var/override/numbered/val_init/i32.wgsl.expected.msl
index 812c466..3e84752 100644
--- a/test/var/override/numbered/val_init/i32.wgsl.expected.msl
+++ b/test/var/override/numbered/val_init/i32.wgsl.expected.msl
@@ -2,6 +2,7 @@
 
 using namespace metal;
 constant int o [[function_constant(1234)]];
+
 kernel void tint_symbol() {
   return;
 }
diff --git a/test/var/override/numbered/val_init/u32.wgsl.expected.msl b/test/var/override/numbered/val_init/u32.wgsl.expected.msl
index 799a682..51e2d72 100644
--- a/test/var/override/numbered/val_init/u32.wgsl.expected.msl
+++ b/test/var/override/numbered/val_init/u32.wgsl.expected.msl
@@ -2,6 +2,7 @@
 
 using namespace metal;
 constant uint o [[function_constant(1234)]];
+
 kernel void tint_symbol() {
   return;
 }
diff --git a/test/var/override/numbered/zero_init/bool.wgsl.expected.msl b/test/var/override/numbered/zero_init/bool.wgsl.expected.msl
index d6cbfe9..28e456b 100644
--- a/test/var/override/numbered/zero_init/bool.wgsl.expected.msl
+++ b/test/var/override/numbered/zero_init/bool.wgsl.expected.msl
@@ -2,6 +2,7 @@
 
 using namespace metal;
 constant bool o [[function_constant(1234)]];
+
 kernel void tint_symbol() {
   return;
 }
diff --git a/test/var/override/numbered/zero_init/f32.wgsl.expected.msl b/test/var/override/numbered/zero_init/f32.wgsl.expected.msl
index 41134e2..ce09e6e 100644
--- a/test/var/override/numbered/zero_init/f32.wgsl.expected.msl
+++ b/test/var/override/numbered/zero_init/f32.wgsl.expected.msl
@@ -2,6 +2,7 @@
 
 using namespace metal;
 constant float o [[function_constant(1234)]];
+
 kernel void tint_symbol() {
   return;
 }
diff --git a/test/var/override/numbered/zero_init/i32.wgsl.expected.msl b/test/var/override/numbered/zero_init/i32.wgsl.expected.msl
index 812c466..3e84752 100644
--- a/test/var/override/numbered/zero_init/i32.wgsl.expected.msl
+++ b/test/var/override/numbered/zero_init/i32.wgsl.expected.msl
@@ -2,6 +2,7 @@
 
 using namespace metal;
 constant int o [[function_constant(1234)]];
+
 kernel void tint_symbol() {
   return;
 }
diff --git a/test/var/override/numbered/zero_init/u32.wgsl.expected.msl b/test/var/override/numbered/zero_init/u32.wgsl.expected.msl
index 799a682..51e2d72 100644
--- a/test/var/override/numbered/zero_init/u32.wgsl.expected.msl
+++ b/test/var/override/numbered/zero_init/u32.wgsl.expected.msl
@@ -2,6 +2,7 @@
 
 using namespace metal;
 constant uint o [[function_constant(1234)]];
+
 kernel void tint_symbol() {
   return;
 }