GLSL: move entry point handling to CanonicalizeEntryPointIO transform.

Move builtin_to_string() and builtin_type() to
the CanonicalizeEntryPointIO transform. Use the former to
rename entry point IO variables to the gl_ names, and the latter
to cast values to the correct type.

Change-Id: Iddfad574ddd660ff1bfd89a399a001b967b6b67e
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/78380
Reviewed-by: James Price <jrprice@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Stephen White <senorblanco@chromium.org>
diff --git a/src/transform/canonicalize_entry_point_io.cc b/src/transform/canonicalize_entry_point_io.cc
index 88e6b16..974e456 100644
--- a/src/transform/canonicalize_entry_point_io.cc
+++ b/src/transform/canonicalize_entry_point_io.cc
@@ -130,11 +130,14 @@
 
   /// Clones the shader IO decorations from `src`.
   /// @param src the decorations to clone
+  /// @param do_interpolate whether to clone InterpolateDecoration
   /// @return the cloned decorations
-  ast::DecorationList CloneShaderIOAttributes(const ast::DecorationList& src) {
+  ast::DecorationList CloneShaderIOAttributes(const ast::DecorationList& src,
+                                              bool do_interpolate) {
     ast::DecorationList new_decorations;
     for (auto* deco : src) {
-      if (IsShaderIODecoration(deco)) {
+      if (IsShaderIODecoration(deco) &&
+          (do_interpolate || !deco->Is<ast::InterpolateDecoration>())) {
         new_decorations.push_back(ctx.Clone(deco));
       }
     }
@@ -159,7 +162,8 @@
                                   const sem::Type* type,
                                   ast::DecorationList attributes) {
     auto* ast_type = CreateASTTypeFor(ctx, type);
-    if (cfg.shader_style == ShaderStyle::kSpirv) {
+    if (cfg.shader_style == ShaderStyle::kSpirv ||
+        cfg.shader_style == ShaderStyle::kGlsl) {
       // Vulkan requires that integer user-defined fragment inputs are
       // always decorated with `Flat`.
       // TODO(crbug.com/tint/1224): Remove this once a flat interpolation
@@ -176,8 +180,15 @@
       attributes.push_back(
           ctx.dst->Disable(ast::DisabledValidation::kIgnoreStorageClass));
 
-      // Create the global variable and use its value for the shader input.
+      // In GLSL, if it's a builtin, override the name with the
+      // corresponding gl_ builtin name
+      auto* builtin = ast::GetDecoration<ast::BuiltinDecoration>(attributes);
+      if (cfg.shader_style == ShaderStyle::kGlsl && builtin) {
+        name = GLSLBuiltinToString(builtin->builtin, func_ast->PipelineStage());
+      }
       auto symbol = ctx.dst->Symbols().New(name);
+
+      // Create the global variable and use its value for the shader input.
       const ast::Expression* value = ctx.dst->Expr(symbol);
       if (HasSampleMask(attributes)) {
         // Vulkan requires the type of a SampleMask builtin to be an array.
@@ -185,6 +196,13 @@
         ast_type = ctx.dst->ty.array(ast_type, 1);
         value = ctx.dst->IndexAccessor(value, 0);
       }
+
+      // In GLSL, if the type doesn't match the type of the builtin,
+      // insert a bitcast
+      if (cfg.shader_style == ShaderStyle::kGlsl && builtin &&
+          GLSLBuiltinNeedsBitcast(builtin->builtin)) {
+        value = ctx.dst->Bitcast(CreateASTTypeFor(ctx, type), value);
+      }
       ctx.dst->Global(symbol, ast_type, ast::StorageClass::kInput,
                       std::move(attributes));
       return value;
@@ -231,6 +249,13 @@
           ast::InterpolationType::kFlat, ast::InterpolationSampling::kNone));
     }
 
+    // In GLSL, if it's a builtin, override the name with the
+    // corresponding gl_ builtin name
+    auto* builtin = ast::GetDecoration<ast::BuiltinDecoration>(attributes);
+    if (cfg.shader_style == ShaderStyle::kGlsl && builtin) {
+      name = GLSLBuiltinToString(builtin->builtin, func_ast->PipelineStage());
+    }
+
     OutputValue output;
     output.name = name;
     output.type = CreateASTTypeFor(ctx, type);
@@ -279,7 +304,15 @@
 
       auto* member_ast = member->Declaration();
       auto name = ctx.src->Symbols().NameFor(member_ast->symbol);
-      auto attributes = CloneShaderIOAttributes(member_ast->decorations);
+
+      // In GLSL, do not add interpolation decorations on vertex input
+      bool do_interpolate = true;
+      if (cfg.shader_style == ShaderStyle::kGlsl &&
+          func_ast->PipelineStage() == ast::PipelineStage::kVertex) {
+        do_interpolate = false;
+      }
+      auto attributes =
+          CloneShaderIOAttributes(member_ast->decorations, do_interpolate);
       auto* input_expr = AddInput(name, member->Type(), std::move(attributes));
       inner_struct_values.push_back(input_expr);
     }
@@ -296,6 +329,12 @@
   /// @param original_result the result object produced by the original function
   void ProcessReturnType(const sem::Type* inner_ret_type,
                          Symbol original_result) {
+    bool do_interpolate = true;
+    // In GLSL, do not add interpolation decorations on fragment output
+    if (cfg.shader_style == ShaderStyle::kGlsl &&
+        func_ast->PipelineStage() == ast::PipelineStage::kFragment) {
+      do_interpolate = false;
+    }
     if (auto* str = inner_ret_type->As<sem::Struct>()) {
       for (auto* member : str->Members()) {
         if (member->Type()->Is<sem::Struct>()) {
@@ -305,15 +344,16 @@
 
         auto* member_ast = member->Declaration();
         auto name = ctx.src->Symbols().NameFor(member_ast->symbol);
-        auto attributes = CloneShaderIOAttributes(member_ast->decorations);
+        auto attributes =
+            CloneShaderIOAttributes(member_ast->decorations, do_interpolate);
 
         // Extract the original structure member.
         AddOutput(name, member->Type(), std::move(attributes),
                   ctx.dst->MemberAccessor(original_result, name));
       }
     } else if (!inner_ret_type->Is<sem::Void>()) {
-      auto attributes =
-          CloneShaderIOAttributes(func_ast->return_type_decorations);
+      auto attributes = CloneShaderIOAttributes(
+          func_ast->return_type_decorations, do_interpolate);
 
       // Propagate the non-struct return value as is.
       AddOutput("value", func_sem->ReturnType(), std::move(attributes),
@@ -348,6 +388,15 @@
               {ctx.dst->Builtin(ast::Builtin::kPointSize)}, ctx.dst->Expr(1.f));
   }
 
+  /// Create an expression for gl_Position.[component]
+  /// @param component the component of gl_Position to access
+  /// @returns the new expression
+  const ast::Expression* GLPosition(const char* component) {
+    Symbol pos = ctx.dst->Symbols().Register("gl_Position");
+    Symbol c = ctx.dst->Symbols().Register(component);
+    return ctx.dst->MemberAccessor(ctx.dst->Expr(pos), ctx.dst->Expr(c));
+  }
+
   /// Create the wrapper function's struct parameter and type objects.
   void CreateInputStruct() {
     // Sort the struct members to satisfy HLSL interfacing matching rules.
@@ -412,7 +461,7 @@
   }
 
   /// Create and assign the wrapper function's output variables.
-  void CreateSpirvOutputVariables() {
+  void CreateGlobalOutputVariables() {
     for (auto& outval : wrapper_output_values) {
       // Disable validation for use of the `output` storage class.
       ast::DecorationList attributes = std::move(outval.attributes);
@@ -438,10 +487,17 @@
   // Recreate the original function without entry point attributes and call it.
   /// @returns the inner function call expression
   const ast::CallExpression* CallInnerFunction() {
-    // Add a suffix to the function name, as the wrapper function will take the
-    // original entry point name.
-    auto ep_name = ctx.src->Symbols().NameFor(func_ast->symbol);
-    auto inner_name = ctx.dst->Symbols().New(ep_name + "_inner");
+    Symbol inner_name;
+    if (cfg.shader_style == ShaderStyle::kGlsl) {
+      // In GLSL, clone the original entry point name, as the wrapper will be
+      // called "main".
+      inner_name = ctx.Clone(func_ast->symbol);
+    } else {
+      // Add a suffix to the function name, as the wrapper function will take
+      // the original entry point name.
+      auto ep_name = ctx.src->Symbols().NameFor(func_ast->symbol);
+      inner_name = ctx.dst->Symbols().New(ep_name + "_inner");
+    }
 
     // Clone everything, dropping the function and return type attributes.
     // The parameter attributes will have already been stripped during
@@ -472,7 +528,7 @@
     // Exit early if there is no shader IO to handle.
     if (func_sem->Parameters().size() == 0 &&
         func_sem->ReturnType()->Is<sem::Void>() && !needs_fixed_sample_mask &&
-        !needs_vertex_point_size) {
+        !needs_vertex_point_size && cfg.shader_style != ShaderStyle::kGlsl) {
       return;
     }
 
@@ -526,8 +582,9 @@
 
     // Produce the entry point outputs, if necessary.
     if (!wrapper_output_values.empty()) {
-      if (cfg.shader_style == ShaderStyle::kSpirv) {
-        CreateSpirvOutputVariables();
+      if (cfg.shader_style == ShaderStyle::kSpirv ||
+          cfg.shader_style == ShaderStyle::kGlsl) {
+        CreateGlobalOutputVariables();
       } else {
         auto* output_struct = CreateOutputStruct();
         wrapper_ret_type = [&, output_struct] {
@@ -536,9 +593,28 @@
       }
     }
 
+    if (cfg.shader_style == ShaderStyle::kGlsl &&
+        func_ast->PipelineStage() == ast::PipelineStage::kVertex) {
+      auto* pos_y = GLPosition("y");
+      auto* negate_pos_y = ctx.dst->create<ast::UnaryOpExpression>(
+          ast::UnaryOp::kNegation, GLPosition("y"));
+      wrapper_body.push_back(ctx.dst->Assign(pos_y, negate_pos_y));
+
+      auto* two_z = ctx.dst->Mul(ctx.dst->Expr(2.0f), GLPosition("z"));
+      auto* fixed_z = ctx.dst->Sub(two_z, GLPosition("w"));
+      wrapper_body.push_back(ctx.dst->Assign(GLPosition("z"), fixed_z));
+    }
+
     // Create the wrapper entry point function.
-    // Take the name of the original entry point function.
-    auto name = ctx.Clone(func_ast->symbol);
+    // For GLSL, use "main", otherwise take the name of the original
+    // entry point function.
+    Symbol name;
+    if (cfg.shader_style == ShaderStyle::kGlsl) {
+      name = ctx.dst->Symbols().New("main");
+    } else {
+      name = ctx.Clone(func_ast->symbol);
+    }
+
     auto* wrapper_func = ctx.dst->create<ast::Function>(
         name, wrapper_ep_parameters, wrapper_ret_type(),
         ctx.dst->Block(wrapper_body), ctx.Clone(func_ast->decorations),
@@ -546,6 +622,65 @@
     ctx.InsertAfter(ctx.src->AST().GlobalDeclarations(), func_ast,
                     wrapper_func);
   }
+
+  /// Retrieve the gl_ string corresponding to a builtin.
+  /// @param builtin the builtin
+  /// @param stage the current pipeline stage
+  /// @returns the gl_ string corresponding to that builtin
+  const char* GLSLBuiltinToString(ast::Builtin builtin,
+                                  ast::PipelineStage stage) {
+    switch (builtin) {
+      case ast::Builtin::kPosition:
+        switch (stage) {
+          case ast::PipelineStage::kVertex:
+            return "gl_Position";
+          case ast::PipelineStage::kFragment:
+            return "gl_FragCoord";
+          default:
+            return "";
+        }
+      case ast::Builtin::kVertexIndex:
+        return "gl_VertexID";
+      case ast::Builtin::kInstanceIndex:
+        return "gl_InstanceID";
+      case ast::Builtin::kFrontFacing:
+        return "gl_FrontFacing";
+      case ast::Builtin::kFragDepth:
+        return "gl_FragDepth";
+      case ast::Builtin::kLocalInvocationId:
+        return "gl_LocalInvocationID";
+      case ast::Builtin::kLocalInvocationIndex:
+        return "gl_LocalInvocationIndex";
+      case ast::Builtin::kGlobalInvocationId:
+        return "gl_GlobalInvocationID";
+      case ast::Builtin::kNumWorkgroups:
+        return "gl_NumWorkGroups";
+      case ast::Builtin::kWorkgroupId:
+        return "gl_WorkGroupID";
+      case ast::Builtin::kSampleIndex:
+        return "gl_SampleID";
+      case ast::Builtin::kSampleMask:
+        return "gl_SampleMask";
+      default:
+        return "";
+    }
+  }
+
+  /// Check if the GLSL version if a builtin doesn't match the WGSL type
+  /// @param builtin the WGSL builtin to check
+  /// @returns true if the GLSL builtin needs to be cast to the WGSL type
+  bool GLSLBuiltinNeedsBitcast(ast::Builtin builtin) {
+    switch (builtin) {
+      case ast::Builtin::kVertexIndex:
+      case ast::Builtin::kInstanceIndex:
+      case ast::Builtin::kSampleIndex:
+      case ast::Builtin::kSampleMask:
+        // In GLSL, these are i32, not u32.
+        return true;
+      default:
+        return false;
+    }
+  }
 };
 
 void CanonicalizeEntryPointIO::Run(CloneContext& ctx,
diff --git a/src/transform/canonicalize_entry_point_io.h b/src/transform/canonicalize_entry_point_io.h
index e3c1dce..3e4394c 100644
--- a/src/transform/canonicalize_entry_point_io.h
+++ b/src/transform/canonicalize_entry_point_io.h
@@ -90,6 +90,8 @@
   enum class ShaderStyle {
     /// Target SPIR-V (using global variables).
     kSpirv,
+    /// Target GLSL (using global variables).
+    kGlsl,
     /// Target MSL (using non-struct function parameters for builtins).
     kMsl,
     /// Target HLSL (using structures for all IO).
diff --git a/src/transform/glsl.cc b/src/transform/glsl.cc
index 595f2a0..dde44e6 100644
--- a/src/transform/glsl.cc
+++ b/src/transform/glsl.cc
@@ -63,17 +63,13 @@
     // ZeroInitWorkgroupMemory may inject new builtin parameters.
     manager.Add<ZeroInitWorkgroupMemory>();
   }
-  manager.Add<CanonicalizeEntryPointIO>();
-  manager.Add<SimplifyPointers>();
-
-  // Running SingleEntryPoint before RemovePhonies prevents variables
-  // referenced only by phonies from being optimized out. Strictly
-  // speaking, that optimization isn't incorrect, but it prevents some
-  // tests (e.g., types/texture/*) from producing useful results.
   if (cfg && !cfg->entry_point.empty()) {
     manager.Add<SingleEntryPoint>();
     data.Add<SingleEntryPoint::Config>(cfg->entry_point);
   }
+  manager.Add<CanonicalizeEntryPointIO>();
+  manager.Add<SimplifyPointers>();
+
   manager.Add<RemovePhonies>();
   manager.Add<CombineSamplers>();
   if (auto* binding_info = inputs.Get<CombineSamplers::BindingInfo>()) {
@@ -100,11 +96,8 @@
   manager.Add<AddEmptyEntryPoint>();
   manager.Add<AddSpirvBlockDecoration>();
 
-  // For now, canonicalize to structs for all IO, as in HLSL.
-  // TODO(senorblanco): we could skip this by accessing global entry point
-  // variables directly.
   data.Add<CanonicalizeEntryPointIO::Config>(
-      CanonicalizeEntryPointIO::ShaderStyle::kHlsl);
+      CanonicalizeEntryPointIO::ShaderStyle::kGlsl);
   auto out = manager.Run(in, data);
   if (!out.program.IsValid()) {
     return out;
diff --git a/src/writer/glsl/generator_impl.cc b/src/writer/glsl/generator_impl.cc
index f1e726b..d9a9126 100644
--- a/src/writer/glsl/generator_impl.cc
+++ b/src/writer/glsl/generator_impl.cc
@@ -1640,6 +1640,9 @@
       return EmitPrivateVariable(sem);
     case ast::StorageClass::kWorkgroup:
       return EmitWorkgroupVariable(sem);
+    case ast::StorageClass::kInput:
+    case ast::StorageClass::kOutput:
+      return EmitIOVariable(sem);
     default:
       break;
   }
@@ -1757,78 +1760,33 @@
   return true;
 }
 
-sem::Type* GeneratorImpl::builtin_type(ast::Builtin builtin) {
-  switch (builtin) {
-    case ast::Builtin::kPosition: {
-      auto* f32 = builder_.create<sem::F32>();
-      return builder_.create<sem::Vector>(f32, 4);
-    }
-    case ast::Builtin::kVertexIndex:
-    case ast::Builtin::kInstanceIndex: {
-      return builder_.create<sem::I32>();
-    }
-    case ast::Builtin::kFrontFacing: {
-      return builder_.create<sem::Bool>();
-    }
-    case ast::Builtin::kFragDepth: {
-      return builder_.create<sem::F32>();
-    }
-    case ast::Builtin::kLocalInvocationId:
-    case ast::Builtin::kGlobalInvocationId:
-    case ast::Builtin::kNumWorkgroups:
-    case ast::Builtin::kWorkgroupId: {
-      auto* u32 = builder_.create<sem::U32>();
-      return builder_.create<sem::Vector>(u32, 3);
-    }
-    case ast::Builtin::kSampleIndex: {
-      return builder_.create<sem::I32>();
-    }
-    case ast::Builtin::kSampleMask:
-    default:
-      return nullptr;
-  }
-}
+bool GeneratorImpl::EmitIOVariable(const sem::Variable* var) {
+  auto* decl = var->Declaration();
 
-const char* GeneratorImpl::builtin_to_string(ast::Builtin builtin,
-                                             ast::PipelineStage stage) {
-  switch (builtin) {
-    case ast::Builtin::kPosition:
-      switch (stage) {
-        case ast::PipelineStage::kVertex:
-          return "gl_Position";
-        case ast::PipelineStage::kFragment:
-          return "gl_FragCoord";
-        default:
-          TINT_ICE(Writer, builder_.Diagnostics())
-              << "position builtin unexpected in this pipeline stage";
-          return "";
-      }
-    case ast::Builtin::kVertexIndex:
-      return "gl_VertexID";
-    case ast::Builtin::kInstanceIndex:
-      return "gl_InstanceID";
-    case ast::Builtin::kFrontFacing:
-      return "gl_FrontFacing";
-    case ast::Builtin::kFragDepth:
-      return "gl_FragDepth";
-    case ast::Builtin::kLocalInvocationId:
-      return "gl_LocalInvocationID";
-    case ast::Builtin::kLocalInvocationIndex:
-      return "gl_LocalInvocationIndex";
-    case ast::Builtin::kGlobalInvocationId:
-      return "gl_GlobalInvocationID";
-    case ast::Builtin::kNumWorkgroups:
-      return "gl_NumWorkGroups";
-    case ast::Builtin::kWorkgroupId:
-      return "gl_WorkGroupID";
-    case ast::Builtin::kSampleIndex:
-      return "gl_SampleID";
-    case ast::Builtin::kSampleMask:
-      // FIXME: is this always available?
-      return "gl_SampleMask";
-    default:
-      return "";
+  // Do not emit builtin (gl_) variables.
+  if (ast::HasDecoration<ast::BuiltinDecoration>(decl->decorations)) {
+    return true;
   }
+
+  auto out = line();
+  EmitDecorations(out, decl->decorations);
+  EmitInterpolationQualifiers(out, decl->decorations);
+
+  auto name = builder_.Symbols().NameFor(decl->symbol);
+  auto* type = var->Type()->UnwrapRef();
+  if (!EmitTypeAndName(out, type, var->StorageClass(), var->Access(), name)) {
+    return false;
+  }
+
+  if (auto* constructor = decl->constructor) {
+    out << " = ";
+    if (!EmitExpression(out, constructor)) {
+      return false;
+    }
+  }
+
+  out << ";";
+  return true;
 }
 
 void GeneratorImpl::EmitInterpolationQualifiers(
@@ -1956,144 +1914,6 @@
 
   line() << "}";
 
-  // Declare entry point input variables
-  for (auto* var : func->params) {
-    auto* sem = builder_.Sem().Get(var);
-    auto* str = sem->Type()->As<sem::Struct>();
-    for (auto* member : str->Members()) {
-      auto out = line();
-
-      auto decorations = member->Declaration()->decorations;
-      if (ast::HasDecoration<ast::BuiltinDecoration>(decorations)) {
-        continue;
-      }
-      if (!EmitDecorations(out, decorations)) {
-        return false;
-      }
-      // GLSL does not support interpolation qualifiers on vertex inputs
-      if (func->PipelineStage() != ast::PipelineStage::kVertex) {
-        EmitInterpolationQualifiers(out, decorations);
-      }
-      if (!EmitTypeAndName(
-              out, member->Type(), ast::StorageClass::kInput,
-              ast::Access::kReadWrite,
-              builder_.Symbols().NameFor(member->Declaration()->symbol))) {
-        return false;
-      }
-      out << ";";
-    }
-  }
-
-  // Declare entry point output variables
-  auto* return_type = func_sem->ReturnType()->As<sem::Struct>();
-  if (return_type) {
-    for (auto* member : return_type->Members()) {
-      auto out = line();
-      auto decorations = member->Declaration()->decorations;
-      if (ast::HasDecoration<ast::BuiltinDecoration>(decorations)) {
-        continue;
-      }
-      if (!EmitDecorations(out, decorations)) {
-        return false;
-      }
-      // GLSL does not support interpolation qualifiers on fragment outputs
-      if (func->PipelineStage() != ast::PipelineStage::kFragment) {
-        EmitInterpolationQualifiers(out, decorations);
-      }
-      if (!EmitTypeAndName(
-              out, member->Type(), ast::StorageClass::kOutput,
-              ast::Access::kReadWrite,
-              builder_.Symbols().NameFor(member->Declaration()->symbol))) {
-        return false;
-      }
-      out << ";";
-    }
-  }
-  line();
-
-  // Create a main() function which calls the entry point.
-  line() << "void main() {";
-
-  // Emit main function body
-  {
-    ScopedIndent si(this);
-    for (auto* var : func->params) {
-      auto* sem = builder_.Sem().Get(var);
-      auto* type = sem->Type();
-      {
-        auto out = line();
-        if (!EmitTypeAndName(out, type, sem->StorageClass(), sem->Access(),
-                             "inputs")) {
-          return false;
-        }
-        out << ";";
-      }
-      auto* str = type->As<sem::Struct>();
-      for (auto* member : str->Members()) {
-        auto out = line();
-        std::string name =
-            builder_.Symbols().NameFor(member->Declaration()->symbol);
-        out << "inputs." << name << " = ";
-        if (auto* builtin = ast::GetDecoration<ast::BuiltinDecoration>(
-                member->Declaration()->decorations)) {
-          if (builtin_type(builtin->builtin) != member->Type()) {
-            if (!EmitType(out, member->Type(), ast::StorageClass::kNone,
-                          ast::Access::kReadWrite, "")) {
-              return false;
-            }
-            out << "(";
-            out << builtin_to_string(builtin->builtin, func->PipelineStage());
-            out << ")";
-          } else {
-            out << builtin_to_string(builtin->builtin, func->PipelineStage());
-          }
-        } else {
-          out << name;
-        }
-        out << ";";
-      }
-    }
-
-    if (return_type) {
-      line() << return_type->FriendlyName(builder_.Symbols()) << " outputs;";
-    }
-    {
-      auto out = line();
-      if (return_type) {
-        out << "outputs = ";
-      }
-      out << builder_.Symbols().NameFor(func->symbol);
-      if (func->params.empty()) {
-        out << "()";
-      } else {
-        out << "(inputs)";
-      }
-      out << ";";
-    }
-
-    auto* str = func_sem->ReturnType()->As<sem::Struct>();
-    if (str) {
-      for (auto* member : str->Members()) {
-        auto out = line();
-        std::string name =
-            builder_.Symbols().NameFor(member->Declaration()->symbol);
-        if (auto* builtin = ast::GetDecoration<ast::BuiltinDecoration>(
-                member->Declaration()->decorations)) {
-          out << builtin_to_string(builtin->builtin, func->PipelineStage());
-        } else {
-          out << name;
-        }
-        out << " = outputs." << name << ";";
-      }
-    }
-    if (func->PipelineStage() == ast::PipelineStage::kVertex) {
-      line() << "gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;";
-      line() << "gl_Position.y = -gl_Position.y;";
-    }
-  }
-  line() << "}";
-  line();
-
   return true;
 }
 
diff --git a/src/writer/glsl/generator_impl.h b/src/writer/glsl/generator_impl.h
index ce6a4bb..0022817 100644
--- a/src/writer/glsl/generator_impl.h
+++ b/src/writer/glsl/generator_impl.h
@@ -292,6 +292,11 @@
   /// @returns true on success
   bool EmitWorkgroupVariable(const sem::Variable* var);
 
+  /// Handles emitting a global variable with the input or output storage class
+  /// @param var the global variable
+  /// @returns true on success
+  bool EmitIOVariable(const sem::Variable* var);
+
   /// Handles emitting interpolation qualifiers
   /// @param out the output of the expression stream
   /// @param decos the decorations
diff --git a/src/writer/glsl/generator_impl_function_test.cc b/src/writer/glsl/generator_impl_function_test.cc
index c4bc9bb..9128724 100644
--- a/src/writer/glsl/generator_impl_function_test.cc
+++ b/src/writer/glsl/generator_impl_function_test.cc
@@ -103,11 +103,6 @@
 void func() {
   return;
 }
-
-void main() {
-  func();
-}
-
 )");
 }
 
@@ -142,35 +137,17 @@
   EXPECT_EQ(gen.result(), R"(#version 310 es
 precision mediump float;
 
-struct tint_symbol_1 {
-  float foo;
-};
-
-struct tint_symbol_2 {
-  float value;
-};
-
-float frag_main_inner(float foo) {
+layout(location = 0) in float foo_1;
+layout(location = 1) out float value;
+float frag_main(float foo) {
   return foo;
 }
 
-tint_symbol_2 frag_main(tint_symbol_1 tint_symbol) {
-  float inner_result = frag_main_inner(tint_symbol.foo);
-  tint_symbol_2 wrapper_result = tint_symbol_2(0.0f);
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-layout(location = 0) in float foo;
-layout(location = 1) out float value;
-
 void main() {
-  tint_symbol_1 inputs;
-  inputs.foo = foo;
-  tint_symbol_2 outputs;
-  outputs = frag_main(inputs);
-  value = outputs.value;
+  float inner_result = frag_main(foo_1);
+  value = inner_result;
+  return;
 }
-
 )");
 }
 
@@ -192,35 +169,15 @@
   EXPECT_EQ(gen.result(), R"(#version 310 es
 precision mediump float;
 
-struct tint_symbol_1 {
-  vec4 coord;
-};
-
-struct tint_symbol_2 {
-  float value;
-};
-
-float frag_main_inner(vec4 coord) {
+float frag_main(vec4 coord) {
   return coord.x;
 }
 
-tint_symbol_2 frag_main(tint_symbol_1 tint_symbol) {
-  float inner_result = frag_main_inner(tint_symbol.coord);
-  tint_symbol_2 wrapper_result = tint_symbol_2(0.0f);
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
-
 void main() {
-  tint_symbol_1 inputs;
-  inputs.coord = gl_FragCoord;
-  tint_symbol_2 outputs;
-  outputs = frag_main(inputs);
-  gl_FragDepth = outputs.value;
+  float inner_result = frag_main(gl_FragCoord);
+  gl_FragDepth = inner_result;
+  return;
 }
-
 )");
 }
 
@@ -266,74 +223,41 @@
   EXPECT_EQ(gen.result(), R"(#version 310 es
 precision mediump float;
 
+layout(location = 1) out float col1_1;
+layout(location = 2) out float col2_1;
+layout(location = 1) in float col1_2;
+layout(location = 2) in float col2_2;
 struct Interface {
   vec4 pos;
   float col1;
   float col2;
 };
 
-struct tint_symbol {
-  float col1;
-  float col2;
-  vec4 pos;
-};
-
-Interface vert_main_inner() {
-  Interface tint_symbol_3 = Interface(vec4(0.0f, 0.0f, 0.0f, 0.0f), 0.5f, 0.25f);
-  return tint_symbol_3;
+Interface vert_main() {
+  Interface tint_symbol = Interface(vec4(0.0f, 0.0f, 0.0f, 0.0f), 0.5f, 0.25f);
+  return tint_symbol;
 }
 
-tint_symbol vert_main() {
-  Interface inner_result = vert_main_inner();
-  tint_symbol wrapper_result = tint_symbol(0.0f, 0.0f, vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.pos = inner_result.pos;
-  wrapper_result.col1 = inner_result.col1;
-  wrapper_result.col2 = inner_result.col2;
-  return wrapper_result;
-}
-layout(location = 1) out float col1;
-layout(location = 2) out float col2;
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vert_main();
-  col1 = outputs.col1;
-  col2 = outputs.col2;
-  gl_Position = outputs.pos;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  Interface inner_result = vert_main();
+  gl_Position = inner_result.pos;
+  col1_1 = inner_result.col1;
+  col2_1 = inner_result.col2;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
-struct tint_symbol_2 {
-  float col1;
-  float col2;
-  vec4 pos;
-};
-
-void frag_main_inner(Interface inputs) {
+void frag_main(Interface inputs) {
   float r = inputs.col1;
   float g = inputs.col2;
   vec4 p = inputs.pos;
 }
 
-void frag_main(tint_symbol_2 tint_symbol_1) {
-  Interface tint_symbol_4 = Interface(tint_symbol_1.pos, tint_symbol_1.col1, tint_symbol_1.col2);
-  frag_main_inner(tint_symbol_4);
+void main_1() {
+  Interface tint_symbol_1 = Interface(gl_FragCoord, col1_2, col2_2);
+  frag_main(tint_symbol_1);
   return;
 }
-layout(location = 1) in float col1;
-layout(location = 2) in float col2;
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.col1 = col1;
-  inputs.col2 = col2;
-  inputs.pos = gl_FragCoord;
-  frag_main(inputs);
-}
-
 )");
 }
 
@@ -459,11 +383,6 @@
   float v = sub_func(1.0f);
   return;
 }
-
-void main() {
-  frag_main();
-}
-
 )");
 }
 
@@ -508,11 +427,6 @@
   float v = uniforms.coord.x;
   return;
 }
-
-void main() {
-  frag_main();
-}
-
 )");
 }
 
@@ -566,8 +480,8 @@
 
 void main() {
   frag_main();
+  return;
 }
-
 )");
 }
 
@@ -621,8 +535,8 @@
 
 void main() {
   frag_main();
+  return;
 }
-
 )");
 }
 
@@ -672,8 +586,8 @@
 
 void main() {
   frag_main();
+  return;
 }
-
 )");
 }
 
@@ -724,8 +638,8 @@
 
 void main() {
   frag_main();
+  return;
 }
-
 )");
 }
 
@@ -778,11 +692,6 @@
   float v = sub_func(1.0f);
   return;
 }
-
-void main() {
-  frag_main();
-}
-
 )");
 }
 
@@ -839,8 +748,8 @@
 
 void main() {
   frag_main();
+  return;
 }
-
 )");
 }
 
@@ -858,13 +767,12 @@
 precision mediump float;
 
 void tint_symbol() {
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 )");
 }
 
@@ -885,11 +793,6 @@
 void main() {
   return;
 }
-
-void main() {
-  main();
-}
-
 )");
 }
 
@@ -911,11 +814,6 @@
 void main() {
   return;
 }
-
-void main() {
-  main();
-}
-
 )");
 }
 
@@ -943,11 +841,6 @@
 void main() {
   return;
 }
-
-void main() {
-  main();
-}
-
 )");
 }
 
@@ -984,11 +877,6 @@
 void main() {
   return;
 }
-
-void main() {
-  main();
-}
-
 )");
 }
 
@@ -1096,26 +984,26 @@
 layout(binding = 0) buffer Data_1 {
   float d;
 } data;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void a() {
   float v = data.d;
   return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   a();
+  return;
 }
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void b() {
   float v = data.d;
   return;
 }
 
-void main() {
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main_1() {
   b();
+  return;
 }
-
 )");
 }
 
diff --git a/src/writer/glsl/generator_impl_intrinsic_test.cc b/src/writer/glsl/generator_impl_intrinsic_test.cc
index 6a14bf9..68f4561 100644
--- a/src/writer/glsl/generator_impl_intrinsic_test.cc
+++ b/src/writer/glsl/generator_impl_intrinsic_test.cc
@@ -399,17 +399,16 @@
 }
 
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void test_function() {
   float val = 0.0f;
   float tint_symbol = tint_degrees(val);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   test_function();
+  return;
 }
-
 )");
 }
 
@@ -429,17 +428,16 @@
 }
 
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void test_function() {
   vec3 val = vec3(0.0f, 0.0f, 0.0f);
   vec3 tint_symbol = tint_degrees(val);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   test_function();
+  return;
 }
-
 )");
 }
 
@@ -459,17 +457,16 @@
 }
 
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void test_function() {
   float val = 0.0f;
   float tint_symbol = tint_radians(val);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   test_function();
+  return;
 }
-
 )");
 }
 
@@ -489,17 +486,16 @@
 }
 
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void test_function() {
   vec3 val = vec3(0.0f, 0.0f, 0.0f);
   vec3 tint_symbol = tint_radians(val);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   test_function();
+  return;
 }
-
 )");
 }
 
@@ -736,16 +732,15 @@
 }
 
 ivec3 v = ivec3(0, 0, 0);
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void test_function() {
   tint_int_dot(v, v);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   test_function();
+  return;
 }
-
 )");
 }
 
@@ -764,16 +759,15 @@
 }
 
 uvec3 v = uvec3(0u, 0u, 0u);
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void test_function() {
   tint_int_dot(v, v);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   test_function();
+  return;
 }
-
 )");
 }
 
diff --git a/src/writer/glsl/generator_impl_member_accessor_test.cc b/src/writer/glsl/generator_impl_member_accessor_test.cc
index 6a5f5a8..b59e22e 100644
--- a/src/writer/glsl/generator_impl_member_accessor_test.cc
+++ b/src/writer/glsl/generator_impl_member_accessor_test.cc
@@ -140,16 +140,15 @@
 };
 
 Data str = Data(0.0f);
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void test_function() {
   float expr = str.mem;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   test_function();
+  return;
 }
-
 )");
 }
 
@@ -306,13 +305,12 @@
 } data;
 void tint_symbol() {
   data.b = mat2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 )";
   EXPECT_EQ(gen.result(), expected);
 }
@@ -355,13 +353,12 @@
 } data;
 void tint_symbol() {
   float x = data.a[2][1];
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 )";
   EXPECT_EQ(gen.result(), expected);
 }
@@ -402,13 +399,12 @@
 } data;
 void tint_symbol() {
   int x = data.a[2];
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 )";
   EXPECT_EQ(gen.result(), expected);
 }
@@ -450,13 +446,12 @@
 } data;
 void tint_symbol() {
   int x = data.a[((2 + 4) - 3)];
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 )";
   EXPECT_EQ(gen.result(), expected);
 }
@@ -495,13 +490,12 @@
 } data;
 void tint_symbol() {
   data.a[2] = 2;
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 )";
   EXPECT_EQ(gen.result(), expected);
 }
@@ -554,13 +548,12 @@
 } data;
 void tint_symbol() {
   vec3 x = data.c[2].b;
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 )";
   EXPECT_EQ(gen.result(), expected);
 }
@@ -616,13 +609,12 @@
 } data;
 void tint_symbol() {
   vec2 x = data.c[2].b.xy;
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 )";
   EXPECT_EQ(gen.result(), expected);
 }
@@ -678,13 +670,12 @@
 } data;
 void tint_symbol() {
   float x = data.c[2].b.g;
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 )";
   EXPECT_EQ(gen.result(), expected);
 }
@@ -740,13 +731,12 @@
 } data;
 void tint_symbol() {
   float x = data.c[2].b[1];
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 )";
   EXPECT_EQ(gen.result(), expected);
 }
@@ -798,13 +788,12 @@
 } data;
 void tint_symbol() {
   data.c[2].b = vec3(1.0f, 2.0f, 3.0f);
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 )";
   EXPECT_EQ(gen.result(), expected);
 }
@@ -860,13 +849,12 @@
 } data;
 void tint_symbol() {
   data.c[2].b.y = 1.0f;
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 )";
   EXPECT_EQ(gen.result(), expected);
 }
diff --git a/src/writer/glsl/generator_impl_sanitizer_test.cc b/src/writer/glsl/generator_impl_sanitizer_test.cc
index abf7783..8c1c3c6 100644
--- a/src/writer/glsl/generator_impl_sanitizer_test.cc
+++ b/src/writer/glsl/generator_impl_sanitizer_test.cc
@@ -59,13 +59,12 @@
   b.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
   uint len = tint_symbol_2;
-  return;
 }
 
 void main() {
   a_func();
+  return;
 }
-
 )";
   EXPECT_EQ(expect, got);
 }
@@ -109,13 +108,12 @@
   b.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 4u) / 4u);
   uint len = tint_symbol_2;
-  return;
 }
 
 void main() {
   a_func();
+  return;
 }
-
 )";
 
   EXPECT_EQ(expect, got);
@@ -160,13 +158,12 @@
   b.GetDimensions(tint_symbol_1);
   uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
   uint len = tint_symbol_2;
-  return;
 }
 
 void main() {
   a_func();
+  return;
 }
-
 )";
 
   EXPECT_EQ(expect, got);
@@ -196,13 +193,12 @@
 void tint_symbol() {
   int tint_symbol_1[4] = int[4](1, 2, 3, 4);
   int pos = tint_symbol_1[3];
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 )";
   EXPECT_EQ(expect, got);
 }
@@ -243,13 +239,12 @@
 void tint_symbol() {
   S tint_symbol_1 = S(1, vec3(2.0f, 3.0f, 4.0f), 4);
   vec3 pos = tint_symbol_1.b;
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 )";
   EXPECT_EQ(expect, got);
 }
@@ -284,13 +279,12 @@
 void tint_symbol() {
   int v = 0;
   int x = v;
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 )";
   EXPECT_EQ(expect, got);
 }
@@ -337,13 +331,12 @@
 void tint_symbol() {
   mat4 a[4] = mat4[4](mat4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f), mat4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f), mat4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f), mat4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
   vec4 v = a[3][2];
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 )";
   EXPECT_EQ(expect, got);
 }
diff --git a/src/writer/glsl/generator_impl_test.cc b/src/writer/glsl/generator_impl_test.cc
index d264afb..ccccf6c 100644
--- a/src/writer/glsl/generator_impl_test.cc
+++ b/src/writer/glsl/generator_impl_test.cc
@@ -37,41 +37,6 @@
 )");
 }
 
-struct GlslBuiltinData {
-  ast::Builtin builtin;
-  const char* attribute_name;
-};
-inline std::ostream& operator<<(std::ostream& out, GlslBuiltinData data) {
-  out << data.builtin;
-  return out;
-}
-using GlslBuiltinConversionTest = TestParamHelper<GlslBuiltinData>;
-TEST_P(GlslBuiltinConversionTest, Emit) {
-  auto params = GetParam();
-  GeneratorImpl& gen = Build();
-
-  EXPECT_EQ(gen.builtin_to_string(params.builtin, ast::PipelineStage::kVertex),
-            std::string(params.attribute_name));
-}
-INSTANTIATE_TEST_SUITE_P(
-    GlslGeneratorImplTest,
-    GlslBuiltinConversionTest,
-    testing::Values(
-        GlslBuiltinData{ast::Builtin::kPosition, "gl_Position"},
-        GlslBuiltinData{ast::Builtin::kVertexIndex, "gl_VertexID"},
-        GlslBuiltinData{ast::Builtin::kInstanceIndex, "gl_InstanceID"},
-        GlslBuiltinData{ast::Builtin::kFrontFacing, "gl_FrontFacing"},
-        GlslBuiltinData{ast::Builtin::kFragDepth, "gl_FragDepth"},
-        GlslBuiltinData{ast::Builtin::kLocalInvocationId,
-                        "gl_LocalInvocationID"},
-        GlslBuiltinData{ast::Builtin::kLocalInvocationIndex,
-                        "gl_LocalInvocationIndex"},
-        GlslBuiltinData{ast::Builtin::kGlobalInvocationId,
-                        "gl_GlobalInvocationID"},
-        GlslBuiltinData{ast::Builtin::kWorkgroupId, "gl_WorkGroupID"},
-        GlslBuiltinData{ast::Builtin::kSampleIndex, "gl_SampleID"},
-        GlslBuiltinData{ast::Builtin::kSampleMask, "gl_SampleMask"}));
-
 }  // namespace
 }  // namespace glsl
 }  // namespace writer
diff --git a/test/access/let/matrix.spvasm.expected.glsl b/test/access/let/matrix.spvasm.expected.glsl
index 09bbe7d..0d5280b 100644
--- a/test/access/let/matrix.spvasm.expected.glsl
+++ b/test/access/let/matrix.spvasm.expected.glsl
@@ -6,13 +6,12 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/access/let/matrix.wgsl.expected.glsl b/test/access/let/matrix.wgsl.expected.glsl
index e1c125d..382315b 100644
--- a/test/access/let/matrix.wgsl.expected.glsl
+++ b/test/access/let/matrix.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   mat3 m = mat3(vec3(1.0f, 2.0f, 3.0f), vec3(4.0f, 5.0f, 6.0f), vec3(7.0f, 8.0f, 9.0f));
   vec3 v = m[1];
   float f = v[1];
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/access/let/vector.spvasm.expected.glsl b/test/access/let/vector.spvasm.expected.glsl
index 8d9f092..87ed9fd 100644
--- a/test/access/let/vector.spvasm.expected.glsl
+++ b/test/access/let/vector.spvasm.expected.glsl
@@ -8,13 +8,12 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/access/let/vector.wgsl.expected.glsl b/test/access/let/vector.wgsl.expected.glsl
index 31cc9c0..ea163f7 100644
--- a/test/access/let/vector.wgsl.expected.glsl
+++ b/test/access/let/vector.wgsl.expected.glsl
@@ -1,16 +1,15 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   vec3 v = vec3(1.0f, 2.0f, 3.0f);
   float scalar = v.y;
   vec2 swizzle2 = v.xz;
   vec3 swizzle3 = v.xzy;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/access/var/matrix.spvasm.expected.glsl b/test/access/var/matrix.spvasm.expected.glsl
index b906e9a..40b5881 100644
--- a/test/access/var/matrix.spvasm.expected.glsl
+++ b/test/access/var/matrix.spvasm.expected.glsl
@@ -8,13 +8,12 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/access/var/matrix.wgsl.expected.glsl b/test/access/var/matrix.wgsl.expected.glsl
index 42db3dd..62f55ef 100644
--- a/test/access/var/matrix.wgsl.expected.glsl
+++ b/test/access/var/matrix.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   mat3 m = mat3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
   vec3 v = m[1];
   float f = v[1];
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/access/var/vector.spvasm.expected.glsl b/test/access/var/vector.spvasm.expected.glsl
index 05991e5..78b70c5 100644
--- a/test/access/var/vector.spvasm.expected.glsl
+++ b/test/access/var/vector.spvasm.expected.glsl
@@ -11,13 +11,12 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/access/var/vector.wgsl.expected.glsl b/test/access/var/vector.wgsl.expected.glsl
index 0d3c233..1550bd9 100644
--- a/test/access/var/vector.wgsl.expected.glsl
+++ b/test/access/var/vector.wgsl.expected.glsl
@@ -1,16 +1,15 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   vec3 v = vec3(0.0f, 0.0f, 0.0f);
   float scalar = v.y;
   vec2 swizzle2 = v.xz;
   vec3 swizzle3 = v.xzy;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/array/assign_to_function_var.wgsl.expected.glsl b/test/array/assign_to_function_var.wgsl.expected.glsl
index 54f1d21..d127dca 100644
--- a/test/array/assign_to_function_var.wgsl.expected.glsl
+++ b/test/array/assign_to_function_var.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 struct S {
   ivec4 arr[4];
 };
diff --git a/test/array/assign_to_private_var.wgsl.expected.glsl b/test/array/assign_to_private_var.wgsl.expected.glsl
index f3898a9..992a8c6 100644
--- a/test/array/assign_to_private_var.wgsl.expected.glsl
+++ b/test/array/assign_to_private_var.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 struct S {
   ivec4 arr[4];
 };
diff --git a/test/array/assign_to_storage_var.wgsl.expected.glsl b/test/array/assign_to_storage_var.wgsl.expected.glsl
index 3ef6d59..7df07b7 100644
--- a/test/array/assign_to_storage_var.wgsl.expected.glsl
+++ b/test/array/assign_to_storage_var.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 struct S {
   ivec4 arr[4];
 };
diff --git a/test/array/assign_to_subexpr.wgsl.expected.glsl b/test/array/assign_to_subexpr.wgsl.expected.glsl
index 0bec242..7120de5 100644
--- a/test/array/assign_to_subexpr.wgsl.expected.glsl
+++ b/test/array/assign_to_subexpr.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 struct S {
   int arr[4];
 };
diff --git a/test/array/assign_to_workgroup_var.wgsl.expected.glsl b/test/array/assign_to_workgroup_var.wgsl.expected.glsl
index 9cc8828..14caa05 100644
--- a/test/array/assign_to_workgroup_var.wgsl.expected.glsl
+++ b/test/array/assign_to_workgroup_var.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 struct S {
   ivec4 arr[4];
 };
diff --git a/test/array/function_parameter.wgsl.expected.glsl b/test/array/function_parameter.wgsl.expected.glsl
index 2005298..17ef9c5 100644
--- a/test/array/function_parameter.wgsl.expected.glsl
+++ b/test/array/function_parameter.wgsl.expected.glsl
@@ -13,7 +13,6 @@
   return a[1][2][3];
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   float a1[4] = float[4](0.0f, 0.0f, 0.0f, 0.0f);
   float a2[3][4] = float[3][4](float[4](0.0f, 0.0f, 0.0f, 0.0f), float[4](0.0f, 0.0f, 0.0f, 0.0f), float[4](0.0f, 0.0f, 0.0f, 0.0f));
@@ -21,10 +20,10 @@
   float v1 = f1(a1);
   float v2 = f2(a2);
   float v3 = f3(a3);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/array/function_return_type.wgsl.expected.glsl b/test/array/function_return_type.wgsl.expected.glsl
index 565b3ce..ba2caec 100644
--- a/test/array/function_return_type.wgsl.expected.glsl
+++ b/test/array/function_return_type.wgsl.expected.glsl
@@ -16,15 +16,14 @@
   return tint_symbol_3;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   float a1[4] = f1();
   float a2[3][4] = f2();
   float a3[2][3][4] = f3();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/array/size.wgsl.expected.glsl b/test/array/size.wgsl.expected.glsl
index 080117c..762d5c8 100644
--- a/test/array/size.wgsl.expected.glsl
+++ b/test/array/size.wgsl.expected.glsl
@@ -10,10 +10,9 @@
   float unsigned_constant[4] = float[4](0.0f, 0.0f, 0.0f, 0.0f);
   signed_literal = unsigned_constant;
   signed_constant = unsigned_literal;
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/array/type_constructor.wgsl.expected.glsl b/test/array/type_constructor.wgsl.expected.glsl
index 7f3f884..7a2e105 100644
--- a/test/array/type_constructor.wgsl.expected.glsl
+++ b/test/array/type_constructor.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   int x = 42;
   int empty[4] = int[4](0, 0, 0, 0);
@@ -36,10 +35,10 @@
   int tint_symbol_19[4] = int[4](1, x, (x + 1), nonempty[3]);
   int tint_symbol_20[2][4] = int[2][4](tint_symbol_19, nested_nonempty[1][2]);
   int subexpr_nested_nonempty_with_expr[4] = tint_symbol_20[1];
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/benchmark/animometer.wgsl.expected.glsl b/test/benchmark/animometer.wgsl.expected.glsl
index 3a6d303..1852220 100644
--- a/test/benchmark/animometer.wgsl.expected.glsl
+++ b/test/benchmark/animometer.wgsl.expected.glsl
@@ -3,6 +3,9 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) in vec4 position_1;
+layout(location = 1) in vec4 color_1;
+layout(location = 0) out vec4 v_color_1;
 struct Time {
   float value;
 };
@@ -32,17 +35,7 @@
   vec4 v_color;
 };
 
-struct tint_symbol_2 {
-  vec4 position;
-  vec4 color;
-};
-
-struct tint_symbol_3 {
-  vec4 v_color;
-  vec4 Position;
-};
-
-VertexOutput vert_main_inner(vec4 position, vec4 color) {
+VertexOutput vert_main(vec4 position, vec4 color) {
   float fade = ((uniforms.scalarOffset + ((time.value * uniforms.scalar) / 10.0f)) % 1.0f);
   if ((fade < 0.5f)) {
     fade = (fade * 2.0f);
@@ -62,41 +55,17 @@
   return tint_symbol;
 }
 
-struct tint_symbol_5 {
-  vec4 v_color;
-};
-
-struct tint_symbol_6 {
-  vec4 value;
-};
-
-tint_symbol_3 vert_main(tint_symbol_2 tint_symbol_1) {
-  VertexOutput inner_result = vert_main_inner(tint_symbol_1.position, tint_symbol_1.color);
-  tint_symbol_3 wrapper_result = tint_symbol_3(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.Position = inner_result.Position;
-  wrapper_result.v_color = inner_result.v_color;
-  return wrapper_result;
-}
-layout(location = 0) in vec4 position;
-layout(location = 1) in vec4 color;
-layout(location = 0) out vec4 v_color;
-
-
 void main() {
-  tint_symbol_2 inputs;
-  inputs.position = position;
-  inputs.color = color;
-  tint_symbol_3 outputs;
-  outputs = vert_main(inputs);
-  v_color = outputs.v_color;
-  gl_Position = outputs.Position;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  VertexOutput inner_result = vert_main(position_1, color_1);
+  gl_Position = inner_result.Position;
+  v_color_1 = inner_result.v_color;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:44: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type ' temp mediump float' and a right operand of type ' const float' (or there is no acceptable conversion)
-ERROR: 0:44: '' : compilation terminated 
+ERROR: 0:37: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type ' temp mediump float' and a right operand of type ' const float' (or there is no acceptable conversion)
+ERROR: 0:37: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
@@ -104,6 +73,8 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) in vec4 v_color_1;
+layout(location = 0) out vec4 value_1;
 struct Time {
   float value;
 };
@@ -121,42 +92,12 @@
   vec4 v_color;
 };
 
-struct tint_symbol_2 {
-  vec4 position;
-  vec4 color;
-};
-
-struct tint_symbol_3 {
-  vec4 v_color;
-  vec4 Position;
-};
-
-struct tint_symbol_5 {
-  vec4 v_color;
-};
-
-struct tint_symbol_6 {
-  vec4 value;
-};
-
-vec4 frag_main_inner(vec4 v_color) {
+vec4 frag_main(vec4 v_color) {
   return v_color;
 }
 
-tint_symbol_6 frag_main(tint_symbol_5 tint_symbol_4) {
-  vec4 inner_result_1 = frag_main_inner(tint_symbol_4.v_color);
-  tint_symbol_6 wrapper_result_1 = tint_symbol_6(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result_1.value = inner_result_1;
-  return wrapper_result_1;
-}
-layout(location = 0) in vec4 v_color;
-layout(location = 0) out vec4 value;
-
 void main() {
-  tint_symbol_5 inputs;
-  inputs.v_color = v_color;
-  tint_symbol_6 outputs;
-  outputs = frag_main(inputs);
-  value = outputs.value;
+  vec4 inner_result = frag_main(v_color_1);
+  value_1 = inner_result;
+  return;
 }
-
diff --git a/test/benchmark/particles.wgsl.expected.glsl b/test/benchmark/particles.wgsl.expected.glsl
index 1491dca..1c82e15 100644
--- a/test/benchmark/particles.wgsl.expected.glsl
+++ b/test/benchmark/particles.wgsl.expected.glsl
@@ -3,6 +3,11 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) in vec3 position_1;
+layout(location = 1) in vec4 color_1;
+layout(location = 2) in vec2 quad_pos_1;
+layout(location = 0) out vec4 color_2;
+layout(location = 1) out vec2 quad_pos_2;
 struct RenderParams {
   mat4 modelViewProjectionMatrix;
   vec3 right;
@@ -27,38 +32,6 @@
   vec2 quad_pos;
 };
 
-struct tint_symbol_4 {
-  vec3 position;
-  vec4 color;
-  vec2 quad_pos;
-};
-
-struct tint_symbol_5 {
-  vec4 color;
-  vec2 quad_pos;
-  vec4 position;
-};
-
-VertexOutput vs_main_inner(VertexInput tint_symbol) {
-  vec3 quad_pos = (mat2x3(render_params.right, render_params.up) * tint_symbol.quad_pos);
-  vec3 position = (tint_symbol.position + (quad_pos * 0.01f));
-  VertexOutput tint_symbol_1 = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec2(0.0f, 0.0f));
-  tint_symbol_1.position = (render_params.modelViewProjectionMatrix * vec4(position, 1.0f));
-  tint_symbol_1.color = tint_symbol.color;
-  tint_symbol_1.quad_pos = tint_symbol.quad_pos;
-  return tint_symbol_1;
-}
-
-struct tint_symbol_7 {
-  vec4 color;
-  vec2 quad_pos;
-  vec4 position;
-};
-
-struct tint_symbol_8 {
-  vec4 value;
-};
-
 struct SimulationParams {
   float deltaTime;
   vec4 seed;
@@ -71,61 +44,36 @@
   vec3 velocity;
 };
 
-struct tint_symbol_10 {
-  uvec3 GlobalInvocationID;
-};
-
 struct UBO {
   uint width;
 };
 
-struct tint_symbol_12 {
-  uvec3 coord;
-};
-
-struct tint_symbol_14 {
-  uvec3 coord;
-};
-
-tint_symbol_5 vs_main(tint_symbol_4 tint_symbol_3) {
-  VertexInput tint_symbol_15 = VertexInput(tint_symbol_3.position, tint_symbol_3.color, tint_symbol_3.quad_pos);
-  VertexOutput inner_result = vs_main_inner(tint_symbol_15);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec2(0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.position = inner_result.position;
-  wrapper_result.color = inner_result.color;
-  wrapper_result.quad_pos = inner_result.quad_pos;
-  return wrapper_result;
+VertexOutput vs_main(VertexInput tint_symbol) {
+  vec3 quad_pos = (mat2x3(render_params.right, render_params.up) * tint_symbol.quad_pos);
+  vec3 position = (tint_symbol.position + (quad_pos * 0.01f));
+  VertexOutput tint_symbol_1 = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec2(0.0f, 0.0f));
+  tint_symbol_1.position = (render_params.modelViewProjectionMatrix * vec4(position, 1.0f));
+  tint_symbol_1.color = tint_symbol.color;
+  tint_symbol_1.quad_pos = tint_symbol.quad_pos;
+  return tint_symbol_1;
 }
-layout(location = 0) in vec3 position;
-layout(location = 1) in vec4 color;
-layout(location = 2) in vec2 quad_pos;
-layout(location = 0) out vec4 color;
-layout(location = 1) out vec2 quad_pos;
-
 
 void main() {
-  tint_symbol_4 inputs;
-  inputs.position = position;
-  inputs.color = color;
-  inputs.quad_pos = quad_pos;
-  tint_symbol_5 outputs;
-  outputs = vs_main(inputs);
-  color = outputs.color;
-  quad_pos = outputs.quad_pos;
-  gl_Position = outputs.position;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  VertexInput tint_symbol_3 = VertexInput(position_1, color_1, quad_pos_1);
+  VertexOutput inner_result = vs_main(tint_symbol_3);
+  gl_Position = inner_result.position;
+  color_2 = inner_result.color;
+  quad_pos_2 = inner_result.quad_pos;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
-Error parsing GLSL shader:
-ERROR: 0:100: 'color' : redefinition 
-ERROR: 1 compilation errors.  No code generated.
-
-
-
 #version 310 es
 precision mediump float;
 
+layout(location = 0) in vec4 color_1;
+layout(location = 1) in vec2 quad_pos_1;
+layout(location = 0) out vec4 value_1;
 struct RenderParams {
   mat4 modelViewProjectionMatrix;
   vec3 right;
@@ -144,34 +92,6 @@
   vec2 quad_pos;
 };
 
-struct tint_symbol_4 {
-  vec3 position;
-  vec4 color;
-  vec2 quad_pos;
-};
-
-struct tint_symbol_5 {
-  vec4 color;
-  vec2 quad_pos;
-  vec4 position;
-};
-
-struct tint_symbol_7 {
-  vec4 color;
-  vec2 quad_pos;
-  vec4 position;
-};
-
-struct tint_symbol_8 {
-  vec4 value;
-};
-
-vec4 fs_main_inner(VertexOutput tint_symbol) {
-  vec4 color = tint_symbol.color;
-  color.a = (color.a * max((1.0f - length(tint_symbol.quad_pos)), 0.0f));
-  return color;
-}
-
 struct SimulationParams {
   float deltaTime;
   vec4 seed;
@@ -184,44 +104,22 @@
   vec3 velocity;
 };
 
-struct tint_symbol_10 {
-  uvec3 GlobalInvocationID;
-};
-
 struct UBO {
   uint width;
 };
 
-struct tint_symbol_12 {
-  uvec3 coord;
-};
-
-struct tint_symbol_14 {
-  uvec3 coord;
-};
-
-tint_symbol_8 fs_main(tint_symbol_7 tint_symbol_6) {
-  VertexOutput tint_symbol_15 = VertexOutput(tint_symbol_6.position, tint_symbol_6.color, tint_symbol_6.quad_pos);
-  vec4 inner_result_1 = fs_main_inner(tint_symbol_15);
-  tint_symbol_8 wrapper_result_1 = tint_symbol_8(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result_1.value = inner_result_1;
-  return wrapper_result_1;
+vec4 fs_main(VertexOutput tint_symbol) {
+  vec4 color = tint_symbol.color;
+  color.a = (color.a * max((1.0f - length(tint_symbol.quad_pos)), 0.0f));
+  return color;
 }
-layout(location = 0) in vec4 color;
-layout(location = 1) in vec2 quad_pos;
-
-layout(location = 0) out vec4 value;
 
 void main() {
-  tint_symbol_7 inputs;
-  inputs.color = color;
-  inputs.quad_pos = quad_pos;
-  inputs.position = gl_FragCoord;
-  tint_symbol_8 outputs;
-  outputs = fs_main(inputs);
-  value = outputs.value;
+  VertexOutput tint_symbol_3 = VertexOutput(gl_FragCoord, color_1, quad_pos_1);
+  vec4 inner_result = fs_main(tint_symbol_3);
+  value_1 = inner_result;
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -250,28 +148,6 @@
   vec2 quad_pos;
 };
 
-struct tint_symbol_4 {
-  vec3 position;
-  vec4 color;
-  vec2 quad_pos;
-};
-
-struct tint_symbol_5 {
-  vec4 color;
-  vec2 quad_pos;
-  vec4 position;
-};
-
-struct tint_symbol_7 {
-  vec4 color;
-  vec2 quad_pos;
-  vec4 position;
-};
-
-struct tint_symbol_8 {
-  vec4 value;
-};
-
 struct SimulationParams {
   float deltaTime;
   vec4 seed;
@@ -292,12 +168,12 @@
 layout(binding = 1) buffer Particles_1 {
   Particle particles[];
 } data;
-struct tint_symbol_10 {
-  uvec3 GlobalInvocationID;
+struct UBO {
+  uint width;
 };
 
 uniform highp sampler2D tint_symbol_2_1;
-void simulate_inner(uvec3 GlobalInvocationID) {
+void simulate(uvec3 GlobalInvocationID) {
   rand_seed = ((sim_params.seed.xy + vec2(GlobalInvocationID.xy)) * sim_params.seed.zw);
   uint idx = GlobalInvocationID.x;
   Particle particle = data.particles[idx];
@@ -328,31 +204,11 @@
   data.particles[idx] = particle;
 }
 
-struct UBO {
-  uint width;
-};
-
-struct tint_symbol_12 {
-  uvec3 coord;
-};
-
-struct tint_symbol_14 {
-  uvec3 coord;
-};
-
 layout(local_size_x = 64, local_size_y = 1, local_size_z = 1) in;
-void simulate(tint_symbol_10 tint_symbol_9) {
-  simulate_inner(tint_symbol_9.GlobalInvocationID);
+void main() {
+  simulate(gl_GlobalInvocationID);
   return;
 }
-
-
-void main() {
-  tint_symbol_10 inputs;
-  inputs.GlobalInvocationID = gl_GlobalInvocationID;
-  simulate(inputs);
-}
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'frac' : no matching overloaded function found 
 ERROR: 0:6: '' : compilation terminated 
@@ -381,28 +237,6 @@
   vec2 quad_pos;
 };
 
-struct tint_symbol_4 {
-  vec3 position;
-  vec4 color;
-  vec2 quad_pos;
-};
-
-struct tint_symbol_5 {
-  vec4 color;
-  vec2 quad_pos;
-  vec4 position;
-};
-
-struct tint_symbol_7 {
-  vec4 color;
-  vec2 quad_pos;
-  vec4 position;
-};
-
-struct tint_symbol_8 {
-  vec4 value;
-};
-
 struct SimulationParams {
   float deltaTime;
   vec4 seed;
@@ -415,10 +249,6 @@
   vec3 velocity;
 };
 
-struct tint_symbol_10 {
-  uvec3 GlobalInvocationID;
-};
-
 struct UBO {
   uint width;
 };
@@ -433,33 +263,17 @@
 layout(binding = 5) buffer Buffer_2 {
   float weights[];
 } buf_out;
-struct tint_symbol_12 {
-  uvec3 coord;
-};
-
 uniform highp sampler2D tex_in_1;
-void import_level_inner(uvec3 coord) {
+void import_level(uvec3 coord) {
   uint offset = (coord.x + (coord.y * ubo.width));
   buf_out.weights[offset] = texelFetch(tex_in_1, ivec2(coord.xy), 0).w;
 }
 
-struct tint_symbol_14 {
-  uvec3 coord;
-};
-
 layout(local_size_x = 64, local_size_y = 1, local_size_z = 1) in;
-void import_level(tint_symbol_12 tint_symbol_11) {
-  import_level_inner(tint_symbol_11.coord);
+void main() {
+  import_level(gl_GlobalInvocationID);
   return;
 }
-
-
-void main() {
-  tint_symbol_12 inputs;
-  inputs.coord = gl_GlobalInvocationID;
-  import_level(inputs);
-}
-
 #version 310 es
 precision mediump float;
 
@@ -481,28 +295,6 @@
   vec2 quad_pos;
 };
 
-struct tint_symbol_4 {
-  vec3 position;
-  vec4 color;
-  vec2 quad_pos;
-};
-
-struct tint_symbol_5 {
-  vec4 color;
-  vec2 quad_pos;
-  vec4 position;
-};
-
-struct tint_symbol_7 {
-  vec4 color;
-  vec2 quad_pos;
-  vec4 position;
-};
-
-struct tint_symbol_8 {
-  vec4 value;
-};
-
 struct SimulationParams {
   float deltaTime;
   vec4 seed;
@@ -515,10 +307,6 @@
   vec3 velocity;
 };
 
-struct tint_symbol_10 {
-  uvec3 GlobalInvocationID;
-};
-
 struct UBO {
   uint width;
 };
@@ -533,16 +321,8 @@
 layout(binding = 5) buffer Buffer_2 {
   float weights[];
 } buf_out;
-struct tint_symbol_12 {
-  uvec3 coord;
-};
-
-struct tint_symbol_14 {
-  uvec3 coord;
-};
-
 layout(rgba8) uniform highp writeonly image2D tex_out_1;
-void export_level_inner(uvec3 coord) {
+void export_level(uvec3 coord) {
   if (all(lessThan(coord.xy, uvec2(imageSize(tex_out_1))))) {
     uint dst_offset = (coord.x + (coord.y * ubo.width));
     uint src_offset = ((coord.x * 2u) + ((coord.y * 2u) * ubo.width));
@@ -558,15 +338,7 @@
 }
 
 layout(local_size_x = 64, local_size_y = 1, local_size_z = 1) in;
-void export_level(tint_symbol_14 tint_symbol_13) {
-  export_level_inner(tint_symbol_13.coord);
+void main() {
+  export_level(gl_GlobalInvocationID);
   return;
 }
-
-
-void main() {
-  tint_symbol_14 inputs;
-  inputs.coord = gl_GlobalInvocationID;
-  export_level(inputs);
-}
-
diff --git a/test/benchmark/shadow-fragment.wgsl.expected.glsl b/test/benchmark/shadow-fragment.wgsl.expected.glsl
index 42f8da0..54815b2 100644
--- a/test/benchmark/shadow-fragment.wgsl.expected.glsl
+++ b/test/benchmark/shadow-fragment.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) in vec3 shadowPos_1;
+layout(location = 1) in vec3 fragPos_1;
+layout(location = 2) in vec3 fragNorm_1;
+layout(location = 0) out vec4 value;
 const float shadowDepthTextureSize = 1024.0f;
 struct Scene {
   mat4 lightViewProjMatrix;
@@ -24,19 +28,9 @@
 
 const vec3 albedo = vec3(0.899999976f, 0.899999976f, 0.899999976f);
 const float ambientFactor = 0.200000003f;
-struct tint_symbol_3 {
-  vec3 shadowPos;
-  vec3 fragPos;
-  vec3 fragNorm;
-};
-
-struct tint_symbol_4 {
-  vec4 value;
-};
-
 uniform highp sampler2D shadowMap_shadowSampler;
 
-vec4 tint_symbol_inner(FragmentInput tint_symbol_1) {
+vec4 tint_symbol(FragmentInput tint_symbol_1) {
   float visibility = 0.0f;
   float oneOverShadowDepthTextureSize = (1.0f / shadowDepthTextureSize);
   {
@@ -55,31 +49,15 @@
   return vec4((lightingFactor * albedo), 1.0f);
 }
 
-tint_symbol_4 tint_symbol(tint_symbol_3 tint_symbol_2) {
-  FragmentInput tint_symbol_5 = FragmentInput(tint_symbol_2.shadowPos, tint_symbol_2.fragPos, tint_symbol_2.fragNorm);
-  vec4 inner_result = tint_symbol_inner(tint_symbol_5);
-  tint_symbol_4 wrapper_result = tint_symbol_4(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-layout(location = 0) in vec3 shadowPos;
-layout(location = 1) in vec3 fragPos;
-layout(location = 2) in vec3 fragNorm;
-layout(location = 0) out vec4 value;
-
 void main() {
-  tint_symbol_3 inputs;
-  inputs.shadowPos = shadowPos;
-  inputs.fragPos = fragPos;
-  inputs.fragNorm = fragNorm;
-  tint_symbol_4 outputs;
-  outputs = tint_symbol(inputs);
-  value = outputs.value;
+  FragmentInput tint_symbol_2 = FragmentInput(shadowPos_1, fragPos_1, fragNorm_1);
+  vec4 inner_result = tint_symbol(tint_symbol_2);
+  value = inner_result;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:45: 'assign' :  cannot convert from ' temp highp 4-component vector of float' to ' temp mediump float'
-ERROR: 0:45: '' : compilation terminated 
+ERROR: 0:39: 'assign' :  cannot convert from ' temp highp 4-component vector of float' to ' temp mediump float'
+ERROR: 0:39: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/benchmark/simple-fragment.wgsl.expected.glsl b/test/benchmark/simple-fragment.wgsl.expected.glsl
deleted file mode 100644
index 34e40b5..0000000
--- a/test/benchmark/simple-fragment.wgsl.expected.glsl
+++ /dev/null
@@ -1,50 +0,0 @@
-SKIP: FAILED
-
-#version 310 es
-precision mediump float;
-
-struct Input {
-  vec4 color;
-};
-
-struct Output {
-  vec4 color;
-};
-
-struct tint_symbol_3 {
-  vec4 color;
-};
-
-struct tint_symbol_4 {
-  vec4 color;
-};
-
-Output tint_symbol_inner(Input tint_symbol_1) {
-  Output tint_symbol_5 = Output(tint_symbol_1.color);
-  return tint_symbol_5;
-}
-
-tint_symbol_4 tint_symbol(tint_symbol_3 tint_symbol_2) {
-  Input tint_symbol_6 = Input(tint_symbol_2.color);
-  Output inner_result = tint_symbol_inner(tint_symbol_6);
-  tint_symbol_4 wrapper_result = tint_symbol_4(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.color = inner_result.color;
-  return wrapper_result;
-}
-layout(location = 0) in vec4 color;
-layout(location = 0) out vec4 color;
-
-void main() {
-  tint_symbol_3 inputs;
-  inputs.color = color;
-  tint_symbol_4 outputs;
-  outputs = tint_symbol(inputs);
-  color = outputs.color;
-}
-
-Error parsing GLSL shader:
-ERROR: 0:33: 'color' : redefinition 
-ERROR: 1 compilation errors.  No code generated.
-
-
-
diff --git a/test/benchmark/skinned-shadowed-pbr-fragment.wgsl.expected.glsl b/test/benchmark/skinned-shadowed-pbr-fragment.wgsl.expected.glsl
index c12d1f1..fd15d06 100644
--- a/test/benchmark/skinned-shadowed-pbr-fragment.wgsl.expected.glsl
+++ b/test/benchmark/skinned-shadowed-pbr-fragment.wgsl.expected.glsl
@@ -7,6 +7,17 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) in vec3 worldPos_1;
+layout(location = 1) in vec3 view_1;
+layout(location = 2) in vec2 texcoord_1;
+layout(location = 3) in vec2 texcoord2_1;
+layout(location = 4) in vec4 color_1;
+layout(location = 5) in vec4 instanceColor_1;
+layout(location = 6) in vec3 normal_1;
+layout(location = 7) in vec3 tangent_1;
+layout(location = 8) in vec3 bitangent_1;
+layout(location = 0) out vec4 color_2;
+layout(location = 1) out vec4 emissive_1;
 const float GAMMA = 2.200000048f;
 vec3 linearTosRGB(vec3 linear) {
   float INV_GAMMA = (1.0f / GAMMA);
@@ -312,27 +323,9 @@
   vec4 emissive;
 };
 
-struct tint_symbol_4 {
-  vec3 worldPos;
-  vec3 view;
-  vec2 texcoord;
-  vec2 texcoord2;
-  vec4 color;
-  vec4 instanceColor;
-  vec3 normal;
-  vec3 tangent;
-  vec3 bitangent;
-  vec4 position;
-};
-
-struct tint_symbol_5 {
-  vec4 color;
-  vec4 emissive;
-};
-
 uniform highp sampler2D ssaoTexture_1;
 uniform highp sampler2D ssaoTexture_defaultSampler;
-FragmentOutput fragmentMain_inner(VertexOutput tint_symbol) {
+FragmentOutput fragmentMain(VertexOutput tint_symbol) {
   SurfaceInfo surface = GetSurfaceInfo(tint_symbol);
   vec3 Lo = vec3(0.0f, 0.0f, 0.0f);
   if ((globalLights.dirIntensity > 0.0f)) {
@@ -370,48 +363,16 @@
   return tint_symbol_2;
 }
 
-tint_symbol_5 fragmentMain(tint_symbol_4 tint_symbol_3) {
-  VertexOutput tint_symbol_6 = VertexOutput(tint_symbol_3.position, tint_symbol_3.worldPos, tint_symbol_3.view, tint_symbol_3.texcoord, tint_symbol_3.texcoord2, tint_symbol_3.color, tint_symbol_3.instanceColor, tint_symbol_3.normal, tint_symbol_3.tangent, tint_symbol_3.bitangent);
-  FragmentOutput inner_result = fragmentMain_inner(tint_symbol_6);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.color = inner_result.color;
-  wrapper_result.emissive = inner_result.emissive;
-  return wrapper_result;
-}
-layout(location = 0) in vec3 worldPos;
-layout(location = 1) in vec3 view;
-layout(location = 2) in vec2 texcoord;
-layout(location = 3) in vec2 texcoord2;
-layout(location = 4) in vec4 color;
-layout(location = 5) in vec4 instanceColor;
-layout(location = 6) in vec3 normal;
-layout(location = 7) in vec3 tangent;
-layout(location = 8) in vec3 bitangent;
-
-layout(location = 0) out vec4 color;
-layout(location = 1) out vec4 emissive;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.worldPos = worldPos;
-  inputs.view = view;
-  inputs.texcoord = texcoord;
-  inputs.texcoord2 = texcoord2;
-  inputs.color = color;
-  inputs.instanceColor = instanceColor;
-  inputs.normal = normal;
-  inputs.tangent = tangent;
-  inputs.bitangent = bitangent;
-  inputs.position = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = fragmentMain(inputs);
-  color = outputs.color;
-  emissive = outputs.emissive;
+  VertexOutput tint_symbol_3 = VertexOutput(gl_FragCoord, worldPos_1, view_1, texcoord_1, texcoord2_1, color_1, instanceColor_1, normal_1, tangent_1, bitangent_1);
+  FragmentOutput inner_result = fragmentMain(tint_symbol_3);
+  color_2 = inner_result.color;
+  emissive_1 = inner_result.emissive;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:65: 'mad' : no matching overloaded function found 
-ERROR: 0:65: '' : compilation terminated 
+ERROR: 0:76: 'mad' : no matching overloaded function found 
+ERROR: 0:76: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/benchmark/skinned-shadowed-pbr-vertex.wgsl.expected.glsl b/test/benchmark/skinned-shadowed-pbr-vertex.wgsl.expected.glsl
deleted file mode 100644
index ae182b5..0000000
--- a/test/benchmark/skinned-shadowed-pbr-vertex.wgsl.expected.glsl
+++ /dev/null
@@ -1,185 +0,0 @@
-SKIP: FAILED
-
-#version 310 es
-precision mediump float;
-
-struct VertexInput {
-  vec4 position;
-  vec3 normal;
-  vec4 tangent;
-  vec2 texcoord;
-  uvec4 joints;
-  vec4 weights;
-  vec4 instance0;
-  vec4 instance1;
-  vec4 instance2;
-  vec4 instance3;
-  vec4 instanceColor;
-};
-
-struct VertexOutput {
-  vec4 position;
-  vec3 worldPos;
-  vec3 view;
-  vec2 texcoord;
-  vec2 texcoord2;
-  vec4 color;
-  vec4 instanceColor;
-  vec3 normal;
-  vec3 tangent;
-  vec3 bitangent;
-};
-
-struct Camera {
-  mat4 projection;
-  mat4 inverseProjection;
-  mat4 view;
-  vec3 position;
-  float time;
-  vec2 outputSize;
-  float zNear;
-  float zFar;
-};
-
-layout(binding = 0) uniform Camera_1 {
-  mat4 projection;
-  mat4 inverseProjection;
-  mat4 view;
-  vec3 position;
-  float time;
-  vec2 outputSize;
-  float zNear;
-  float zFar;
-} camera;
-
-layout(binding = 1) buffer Joints_1 {
-  mat4 matrices[];
-} joint;
-layout(binding = 2) buffer Joints_2 {
-  mat4 matrices[];
-} inverseBind;
-mat4 getSkinMatrix(VertexInput tint_symbol) {
-  mat4 joint0 = (joint.matrices[tint_symbol.joints.x] * inverseBind.matrices[tint_symbol.joints.x]);
-  mat4 joint1 = (joint.matrices[tint_symbol.joints.y] * inverseBind.matrices[tint_symbol.joints.y]);
-  mat4 joint2 = (joint.matrices[tint_symbol.joints.z] * inverseBind.matrices[tint_symbol.joints.z]);
-  mat4 joint3 = (joint.matrices[tint_symbol.joints.w] * inverseBind.matrices[tint_symbol.joints.w]);
-  mat4 skinMatrix = ((((joint0 * tint_symbol.weights.x) + (joint1 * tint_symbol.weights.y)) + (joint2 * tint_symbol.weights.z)) + (joint3 * tint_symbol.weights.w));
-  return skinMatrix;
-}
-
-struct tint_symbol_3 {
-  vec4 position;
-  vec3 normal;
-  vec4 tangent;
-  vec2 texcoord;
-  uvec4 joints;
-  vec4 weights;
-  vec4 instance0;
-  vec4 instance1;
-  vec4 instance2;
-  vec4 instance3;
-  vec4 instanceColor;
-};
-
-struct tint_symbol_4 {
-  vec3 worldPos;
-  vec3 view;
-  vec2 texcoord;
-  vec2 texcoord2;
-  vec4 color;
-  vec4 instanceColor;
-  vec3 normal;
-  vec3 tangent;
-  vec3 bitangent;
-  vec4 position;
-};
-
-VertexOutput vertexMain_inner(VertexInput tint_symbol) {
-  VertexOutput tint_symbol_1 = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
-  mat4 modelMatrix = getSkinMatrix(tint_symbol);
-  tint_symbol_1.normal = normalize((modelMatrix * vec4(tint_symbol.normal, 0.0f)).xyz);
-  tint_symbol_1.tangent = normalize((modelMatrix * vec4(tint_symbol.tangent.xyz, 0.0f)).xyz);
-  tint_symbol_1.bitangent = (cross(tint_symbol_1.normal, tint_symbol_1.tangent) * tint_symbol.tangent.w);
-  tint_symbol_1.color = vec4(1.0f);
-  tint_symbol_1.texcoord = tint_symbol.texcoord;
-  tint_symbol_1.instanceColor = tint_symbol.instanceColor;
-  vec4 modelPos = (modelMatrix * tint_symbol.position);
-  tint_symbol_1.worldPos = modelPos.xyz;
-  tint_symbol_1.view = (camera.position - modelPos.xyz);
-  tint_symbol_1.position = ((camera.projection * camera.view) * modelPos);
-  return tint_symbol_1;
-}
-
-tint_symbol_4 vertexMain(tint_symbol_3 tint_symbol_2) {
-  VertexInput tint_symbol_5 = VertexInput(tint_symbol_2.position, tint_symbol_2.normal, tint_symbol_2.tangent, tint_symbol_2.texcoord, tint_symbol_2.joints, tint_symbol_2.weights, tint_symbol_2.instance0, tint_symbol_2.instance1, tint_symbol_2.instance2, tint_symbol_2.instance3, tint_symbol_2.instanceColor);
-  VertexOutput inner_result = vertexMain_inner(tint_symbol_5);
-  tint_symbol_4 wrapper_result = tint_symbol_4(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.position = inner_result.position;
-  wrapper_result.worldPos = inner_result.worldPos;
-  wrapper_result.view = inner_result.view;
-  wrapper_result.texcoord = inner_result.texcoord;
-  wrapper_result.texcoord2 = inner_result.texcoord2;
-  wrapper_result.color = inner_result.color;
-  wrapper_result.instanceColor = inner_result.instanceColor;
-  wrapper_result.normal = inner_result.normal;
-  wrapper_result.tangent = inner_result.tangent;
-  wrapper_result.bitangent = inner_result.bitangent;
-  return wrapper_result;
-}
-layout(location = 0) in vec4 position;
-layout(location = 1) in vec3 normal;
-layout(location = 2) in vec4 tangent;
-layout(location = 3) in vec2 texcoord;
-layout(location = 6) in uvec4 joints;
-layout(location = 7) in vec4 weights;
-layout(location = 8) in vec4 instance0;
-layout(location = 9) in vec4 instance1;
-layout(location = 10) in vec4 instance2;
-layout(location = 11) in vec4 instance3;
-layout(location = 12) in vec4 instanceColor;
-layout(location = 0) out vec3 worldPos;
-layout(location = 1) out vec3 view;
-layout(location = 2) out vec2 texcoord;
-layout(location = 3) out vec2 texcoord2;
-layout(location = 4) out vec4 color;
-layout(location = 5) out vec4 instanceColor;
-layout(location = 6) out vec3 normal;
-layout(location = 7) out vec3 tangent;
-layout(location = 8) out vec3 bitangent;
-
-
-void main() {
-  tint_symbol_3 inputs;
-  inputs.position = position;
-  inputs.normal = normal;
-  inputs.tangent = tangent;
-  inputs.texcoord = texcoord;
-  inputs.joints = joints;
-  inputs.weights = weights;
-  inputs.instance0 = instance0;
-  inputs.instance1 = instance1;
-  inputs.instance2 = instance2;
-  inputs.instance3 = instance3;
-  inputs.instanceColor = instanceColor;
-  tint_symbol_4 outputs;
-  outputs = vertexMain(inputs);
-  worldPos = outputs.worldPos;
-  view = outputs.view;
-  texcoord = outputs.texcoord;
-  texcoord2 = outputs.texcoord2;
-  color = outputs.color;
-  instanceColor = outputs.instanceColor;
-  normal = outputs.normal;
-  tangent = outputs.tangent;
-  bitangent = outputs.bitangent;
-  gl_Position = outputs.position;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
-}
-
-Error parsing GLSL shader:
-ERROR: 0:140: 'texcoord' : redefinition 
-ERROR: 1 compilation errors.  No code generated.
-
-
-
diff --git a/test/buffer/storage/dynamic_index/read.wgsl.expected.glsl b/test/buffer/storage/dynamic_index/read.wgsl.expected.glsl
index def30db..11436a6 100644
--- a/test/buffer/storage/dynamic_index/read.wgsl.expected.glsl
+++ b/test/buffer/storage/dynamic_index/read.wgsl.expected.glsl
@@ -16,11 +16,7 @@
 layout(binding = 0) buffer S_1 {
   Inner arr[];
 } s;
-struct tint_symbol_2 {
-  uint idx;
-};
-
-void tint_symbol_inner(uint idx) {
+void tint_symbol(uint idx) {
   ivec3 a = s.arr[idx].a;
   int b = s.arr[idx].b;
   uvec3 c = s.arr[idx].c;
@@ -33,15 +29,7 @@
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.idx);
+void main() {
+  tint_symbol(gl_LocalInvocationIndex);
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.idx = uint(gl_LocalInvocationIndex);
-  tint_symbol(inputs);
-}
-
diff --git a/test/buffer/storage/dynamic_index/write.wgsl.expected.glsl b/test/buffer/storage/dynamic_index/write.wgsl.expected.glsl
index 3ef8428..3e6a202 100644
--- a/test/buffer/storage/dynamic_index/write.wgsl.expected.glsl
+++ b/test/buffer/storage/dynamic_index/write.wgsl.expected.glsl
@@ -16,11 +16,7 @@
 layout(binding = 0) buffer S_1 {
   Inner arr[];
 } s;
-struct tint_symbol_2 {
-  uint idx;
-};
-
-void tint_symbol_inner(uint idx) {
+void tint_symbol(uint idx) {
   s.arr[idx].a = ivec3(0, 0, 0);
   s.arr[idx].b = 0;
   s.arr[idx].c = uvec3(0u, 0u, 0u);
@@ -29,20 +25,12 @@
   s.arr[idx].f = 0.0f;
   s.arr[idx].g = mat2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
   s.arr[idx].h = mat3x2(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
-  ivec4 tint_symbol_3[4] = ivec4[4](ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
-  s.arr[idx].i = tint_symbol_3;
+  ivec4 tint_symbol_1[4] = ivec4[4](ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
+  s.arr[idx].i = tint_symbol_1;
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.idx);
+void main() {
+  tint_symbol(gl_LocalInvocationIndex);
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.idx = uint(gl_LocalInvocationIndex);
-  tint_symbol(inputs);
-}
-
diff --git a/test/buffer/storage/static_index/read.wgsl.expected.glsl b/test/buffer/storage/static_index/read.wgsl.expected.glsl
index f467253..3e989aa 100644
--- a/test/buffer/storage/static_index/read.wgsl.expected.glsl
+++ b/test/buffer/storage/static_index/read.wgsl.expected.glsl
@@ -30,7 +30,6 @@
   Inner i;
   Inner j[4];
 } s;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   ivec3 a = s.a;
   int b = s.b;
@@ -42,10 +41,10 @@
   mat3x2 h = s.h;
   Inner i = s.i;
   Inner j[4] = s.j;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/buffer/storage/static_index/write.wgsl.expected.glsl b/test/buffer/storage/static_index/write.wgsl.expected.glsl
index 364b4f0..292daf0 100644
--- a/test/buffer/storage/static_index/write.wgsl.expected.glsl
+++ b/test/buffer/storage/static_index/write.wgsl.expected.glsl
@@ -30,7 +30,6 @@
   Inner i;
   Inner j[4];
 } s;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   s.a = ivec3(0, 0, 0);
   s.b = 0;
@@ -44,10 +43,10 @@
   s.i = tint_symbol_1;
   Inner tint_symbol_2[4] = Inner[4](Inner(0), Inner(0), Inner(0), Inner(0));
   s.j = tint_symbol_2;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/buffer/storage/types/array.wgsl.expected.glsl b/test/buffer/storage/types/array.wgsl.expected.glsl
index 183882d..f93c0a4 100644
--- a/test/buffer/storage/types/array.wgsl.expected.glsl
+++ b/test/buffer/storage/types/array.wgsl.expected.glsl
@@ -11,13 +11,12 @@
 layout(binding = 1) buffer tint_symbol_block_2 {
   float inner[4];
 } tint_symbol_1;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol_2() {
   tint_symbol_1.inner = tint_symbol.inner;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol_2();
+  return;
 }
-
diff --git a/test/buffer/storage/types/f32.wgsl.expected.glsl b/test/buffer/storage/types/f32.wgsl.expected.glsl
index 40d99f7..ff15000 100644
--- a/test/buffer/storage/types/f32.wgsl.expected.glsl
+++ b/test/buffer/storage/types/f32.wgsl.expected.glsl
@@ -11,13 +11,12 @@
 layout(binding = 1) buffer tint_symbol_block_2 {
   float inner;
 } tint_symbol_1;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol_2() {
   tint_symbol_1.inner = tint_symbol.inner;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol_2();
+  return;
 }
-
diff --git a/test/buffer/storage/types/i32.wgsl.expected.glsl b/test/buffer/storage/types/i32.wgsl.expected.glsl
index 976c2b2..2957e23 100644
--- a/test/buffer/storage/types/i32.wgsl.expected.glsl
+++ b/test/buffer/storage/types/i32.wgsl.expected.glsl
@@ -11,13 +11,12 @@
 layout(binding = 1) buffer tint_symbol_block_2 {
   int inner;
 } tint_symbol_1;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol_2() {
   tint_symbol_1.inner = tint_symbol.inner;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol_2();
+  return;
 }
-
diff --git a/test/buffer/storage/types/mat2x2.wgsl.expected.glsl b/test/buffer/storage/types/mat2x2.wgsl.expected.glsl
index 2e8b06a..39cb9fc 100644
--- a/test/buffer/storage/types/mat2x2.wgsl.expected.glsl
+++ b/test/buffer/storage/types/mat2x2.wgsl.expected.glsl
@@ -11,13 +11,12 @@
 layout(binding = 1) buffer tint_symbol_block_2 {
   mat2 inner;
 } tint_symbol_1;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol_2() {
   tint_symbol_1.inner = tint_symbol.inner;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol_2();
+  return;
 }
-
diff --git a/test/buffer/storage/types/mat2x3.wgsl.expected.glsl b/test/buffer/storage/types/mat2x3.wgsl.expected.glsl
index c4b7348..817129e 100644
--- a/test/buffer/storage/types/mat2x3.wgsl.expected.glsl
+++ b/test/buffer/storage/types/mat2x3.wgsl.expected.glsl
@@ -11,13 +11,12 @@
 layout(binding = 1) buffer tint_symbol_block_2 {
   mat2x3 inner;
 } tint_symbol_1;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol_2() {
   tint_symbol_1.inner = tint_symbol.inner;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol_2();
+  return;
 }
-
diff --git a/test/buffer/storage/types/mat3x2.wgsl.expected.glsl b/test/buffer/storage/types/mat3x2.wgsl.expected.glsl
index 0ec9fd8..9d6db45 100644
--- a/test/buffer/storage/types/mat3x2.wgsl.expected.glsl
+++ b/test/buffer/storage/types/mat3x2.wgsl.expected.glsl
@@ -11,13 +11,12 @@
 layout(binding = 1) buffer tint_symbol_block_2 {
   mat3x2 inner;
 } tint_symbol_1;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol_2() {
   tint_symbol_1.inner = tint_symbol.inner;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol_2();
+  return;
 }
-
diff --git a/test/buffer/storage/types/mat4x4.wgsl.expected.glsl b/test/buffer/storage/types/mat4x4.wgsl.expected.glsl
index 4a1756a..4f401b0 100644
--- a/test/buffer/storage/types/mat4x4.wgsl.expected.glsl
+++ b/test/buffer/storage/types/mat4x4.wgsl.expected.glsl
@@ -11,13 +11,12 @@
 layout(binding = 1) buffer tint_symbol_block_2 {
   mat4 inner;
 } tint_symbol_1;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol_2() {
   tint_symbol_1.inner = tint_symbol.inner;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol_2();
+  return;
 }
-
diff --git a/test/buffer/storage/types/runtime_array.wgsl.expected.glsl b/test/buffer/storage/types/runtime_array.wgsl.expected.glsl
index 2a4f200..0498997 100644
--- a/test/buffer/storage/types/runtime_array.wgsl.expected.glsl
+++ b/test/buffer/storage/types/runtime_array.wgsl.expected.glsl
@@ -11,13 +11,12 @@
 layout(binding = 1) buffer tint_symbol_block_2 {
   S inner[];
 } tint_symbol_1;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol_2() {
   tint_symbol_1.inner[0] = tint_symbol.inner[0];
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol_2();
+  return;
 }
-
diff --git a/test/buffer/storage/types/struct.wgsl.expected.glsl b/test/buffer/storage/types/struct.wgsl.expected.glsl
index bc5bf85..6c17bca 100644
--- a/test/buffer/storage/types/struct.wgsl.expected.glsl
+++ b/test/buffer/storage/types/struct.wgsl.expected.glsl
@@ -17,19 +17,18 @@
 layout(binding = 1) buffer S_2 {
   Inner inner;
 } tint_symbol_1;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol_2() {
   tint_symbol_1 = tint_symbol;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol_2();
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:20: 'assign' :  cannot convert from 'layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer structure{ global mediump float f} inner}' to 'layout( binding=1 column_major shared) buffer block{layout( column_major shared) buffer structure{ global mediump float f} inner}'
-ERROR: 0:20: '' : compilation terminated 
+ERROR: 0:19: 'assign' :  cannot convert from 'layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer structure{ global mediump float f} inner}' to 'layout( binding=1 column_major shared) buffer block{layout( column_major shared) buffer structure{ global mediump float f} inner}'
+ERROR: 0:19: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/buffer/storage/types/u32.wgsl.expected.glsl b/test/buffer/storage/types/u32.wgsl.expected.glsl
index 6736a08..c029902 100644
--- a/test/buffer/storage/types/u32.wgsl.expected.glsl
+++ b/test/buffer/storage/types/u32.wgsl.expected.glsl
@@ -11,13 +11,12 @@
 layout(binding = 1) buffer tint_symbol_block_2 {
   uint inner;
 } tint_symbol_1;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol_2() {
   tint_symbol_1.inner = tint_symbol.inner;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol_2();
+  return;
 }
-
diff --git a/test/buffer/storage/types/vec2.wgsl.expected.glsl b/test/buffer/storage/types/vec2.wgsl.expected.glsl
index ddcb7fe..430c76f 100644
--- a/test/buffer/storage/types/vec2.wgsl.expected.glsl
+++ b/test/buffer/storage/types/vec2.wgsl.expected.glsl
@@ -11,13 +11,12 @@
 layout(binding = 1) buffer tint_symbol_block_2 {
   ivec2 inner;
 } tint_symbol_1;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol_2() {
   tint_symbol_1.inner = tint_symbol.inner;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol_2();
+  return;
 }
-
diff --git a/test/buffer/storage/types/vec3.wgsl.expected.glsl b/test/buffer/storage/types/vec3.wgsl.expected.glsl
index f780c9a..78851c6 100644
--- a/test/buffer/storage/types/vec3.wgsl.expected.glsl
+++ b/test/buffer/storage/types/vec3.wgsl.expected.glsl
@@ -11,13 +11,12 @@
 layout(binding = 1) buffer tint_symbol_block_2 {
   uvec3 inner;
 } tint_symbol_1;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol_2() {
   tint_symbol_1.inner = tint_symbol.inner;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol_2();
+  return;
 }
-
diff --git a/test/buffer/storage/types/vec4.wgsl.expected.glsl b/test/buffer/storage/types/vec4.wgsl.expected.glsl
index 414bc4a..8dc4c6e 100644
--- a/test/buffer/storage/types/vec4.wgsl.expected.glsl
+++ b/test/buffer/storage/types/vec4.wgsl.expected.glsl
@@ -11,13 +11,12 @@
 layout(binding = 1) buffer tint_symbol_block_2 {
   vec4 inner;
 } tint_symbol_1;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol_2() {
   tint_symbol_1.inner = tint_symbol.inner;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol_2();
+  return;
 }
-
diff --git a/test/buffer/uniform/dynamic_index/read.wgsl.expected.glsl b/test/buffer/uniform/dynamic_index/read.wgsl.expected.glsl
index 975e418..9bda0ba 100644
--- a/test/buffer/uniform/dynamic_index/read.wgsl.expected.glsl
+++ b/test/buffer/uniform/dynamic_index/read.wgsl.expected.glsl
@@ -23,11 +23,7 @@
   Inner arr[8];
 } s;
 
-struct tint_symbol_2 {
-  uint idx;
-};
-
-void tint_symbol_inner(uint idx) {
+void tint_symbol(uint idx) {
   ivec3 a = s.arr[idx].a;
   int b = s.arr[idx].b;
   uvec3 c = s.arr[idx].c;
@@ -42,15 +38,7 @@
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.idx);
+void main() {
+  tint_symbol(gl_LocalInvocationIndex);
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.idx = uint(gl_LocalInvocationIndex);
-  tint_symbol(inputs);
-}
-
diff --git a/test/buffer/uniform/static_index/read.wgsl.expected.glsl b/test/buffer/uniform/static_index/read.wgsl.expected.glsl
index e23579c..2e611d5 100644
--- a/test/buffer/uniform/static_index/read.wgsl.expected.glsl
+++ b/test/buffer/uniform/static_index/read.wgsl.expected.glsl
@@ -35,7 +35,6 @@
   Inner l[4];
 } s;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   ivec3 a = s.a;
   int b = s.b;
@@ -49,10 +48,10 @@
   mat3x2 j = s.j;
   Inner k = s.k;
   Inner l[4] = s.l;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/buffer/uniform/types/array.wgsl.expected.glsl b/test/buffer/uniform/types/array.wgsl.expected.glsl
index 514ba1f..ac1d865 100644
--- a/test/buffer/uniform/types/array.wgsl.expected.glsl
+++ b/test/buffer/uniform/types/array.wgsl.expected.glsl
@@ -9,13 +9,12 @@
   vec4 inner[4];
 } u;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   vec4 x[4] = u.inner;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/buffer/uniform/types/f32.wgsl.expected.glsl b/test/buffer/uniform/types/f32.wgsl.expected.glsl
index e3b3589..38061a4 100644
--- a/test/buffer/uniform/types/f32.wgsl.expected.glsl
+++ b/test/buffer/uniform/types/f32.wgsl.expected.glsl
@@ -9,13 +9,12 @@
   float inner;
 } u;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   float x = u.inner;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/buffer/uniform/types/i32.wgsl.expected.glsl b/test/buffer/uniform/types/i32.wgsl.expected.glsl
index 6ae3def..4e70136 100644
--- a/test/buffer/uniform/types/i32.wgsl.expected.glsl
+++ b/test/buffer/uniform/types/i32.wgsl.expected.glsl
@@ -9,13 +9,12 @@
   int inner;
 } u;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   int x = u.inner;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/buffer/uniform/types/mat2x2.wgsl.expected.glsl b/test/buffer/uniform/types/mat2x2.wgsl.expected.glsl
index e09403c..b5fc57d 100644
--- a/test/buffer/uniform/types/mat2x2.wgsl.expected.glsl
+++ b/test/buffer/uniform/types/mat2x2.wgsl.expected.glsl
@@ -9,13 +9,12 @@
   mat2 inner;
 } u;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   mat2 x = u.inner;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/buffer/uniform/types/mat2x3.wgsl.expected.glsl b/test/buffer/uniform/types/mat2x3.wgsl.expected.glsl
index fe7ef52..8eab604 100644
--- a/test/buffer/uniform/types/mat2x3.wgsl.expected.glsl
+++ b/test/buffer/uniform/types/mat2x3.wgsl.expected.glsl
@@ -9,13 +9,12 @@
   mat2x3 inner;
 } u;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   mat2x3 x = u.inner;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/buffer/uniform/types/mat3x2.wgsl.expected.glsl b/test/buffer/uniform/types/mat3x2.wgsl.expected.glsl
index 4b742e1..bf87092 100644
--- a/test/buffer/uniform/types/mat3x2.wgsl.expected.glsl
+++ b/test/buffer/uniform/types/mat3x2.wgsl.expected.glsl
@@ -9,13 +9,12 @@
   mat3x2 inner;
 } u;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   mat3x2 x = u.inner;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/buffer/uniform/types/mat4x4.wgsl.expected.glsl b/test/buffer/uniform/types/mat4x4.wgsl.expected.glsl
index 0305478..ce20163 100644
--- a/test/buffer/uniform/types/mat4x4.wgsl.expected.glsl
+++ b/test/buffer/uniform/types/mat4x4.wgsl.expected.glsl
@@ -9,13 +9,12 @@
   mat4 inner;
 } u;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   mat4 x = u.inner;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/buffer/uniform/types/struct.wgsl.expected.glsl b/test/buffer/uniform/types/struct.wgsl.expected.glsl
index c684ea2..dd29c0e 100644
--- a/test/buffer/uniform/types/struct.wgsl.expected.glsl
+++ b/test/buffer/uniform/types/struct.wgsl.expected.glsl
@@ -15,19 +15,18 @@
   Inner inner;
 } u;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   S x = u;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:18: '=' :  cannot convert from 'layout( binding=0 column_major shared) uniform block{layout( column_major shared) uniform structure{ global mediump float f} inner}' to ' temp structure{ global structure{ global mediump float f} inner}'
-ERROR: 0:18: '' : compilation terminated 
+ERROR: 0:17: '=' :  cannot convert from 'layout( binding=0 column_major shared) uniform block{layout( column_major shared) uniform structure{ global mediump float f} inner}' to ' temp structure{ global structure{ global mediump float f} inner}'
+ERROR: 0:17: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/buffer/uniform/types/u32.wgsl.expected.glsl b/test/buffer/uniform/types/u32.wgsl.expected.glsl
index 8096438..402bd68 100644
--- a/test/buffer/uniform/types/u32.wgsl.expected.glsl
+++ b/test/buffer/uniform/types/u32.wgsl.expected.glsl
@@ -9,13 +9,12 @@
   uint inner;
 } u;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   uint x = u.inner;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/buffer/uniform/types/vec2.wgsl.expected.glsl b/test/buffer/uniform/types/vec2.wgsl.expected.glsl
index 7ca9b13..6b281b4 100644
--- a/test/buffer/uniform/types/vec2.wgsl.expected.glsl
+++ b/test/buffer/uniform/types/vec2.wgsl.expected.glsl
@@ -9,13 +9,12 @@
   ivec2 inner;
 } u;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   ivec2 x = u.inner;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/buffer/uniform/types/vec3.wgsl.expected.glsl b/test/buffer/uniform/types/vec3.wgsl.expected.glsl
index 0aba38a..2d6b854 100644
--- a/test/buffer/uniform/types/vec3.wgsl.expected.glsl
+++ b/test/buffer/uniform/types/vec3.wgsl.expected.glsl
@@ -9,13 +9,12 @@
   uvec3 inner;
 } u;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   uvec3 x = u.inner;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/buffer/uniform/types/vec4.wgsl.expected.glsl b/test/buffer/uniform/types/vec4.wgsl.expected.glsl
index 1cbcd11..e3d8b5f 100644
--- a/test/buffer/uniform/types/vec4.wgsl.expected.glsl
+++ b/test/buffer/uniform/types/vec4.wgsl.expected.glsl
@@ -9,13 +9,12 @@
   vec4 inner;
 } u;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   vec4 x = u.inner;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/bug/chromium/1221120.wgsl.expected.glsl b/test/bug/chromium/1221120.wgsl.expected.glsl
index eea151a..288694c 100644
--- a/test/bug/chromium/1221120.wgsl.expected.glsl
+++ b/test/bug/chromium/1221120.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const int H = 1;
diff --git a/test/bug/chromium/1236161.wgsl.expected.glsl b/test/bug/chromium/1236161.wgsl.expected.glsl
index fbc61f8..d1ad034 100644
--- a/test/bug/chromium/1236161.wgsl.expected.glsl
+++ b/test/bug/chromium/1236161.wgsl.expected.glsl
@@ -20,11 +20,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void i() {
   float s = tint_modf(1.0f).whole;
 }
diff --git a/test/bug/chromium/1251009.wgsl.expected.glsl b/test/bug/chromium/1251009.wgsl.expected.glsl
index ab20360..990aab1 100644
--- a/test/bug/chromium/1251009.wgsl.expected.glsl
+++ b/test/bug/chromium/1251009.wgsl.expected.glsl
@@ -1,6 +1,10 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) in int loc0_1;
+layout(location = 1) in uint loc1_1;
+layout(location = 2) in uint loc1_2;
+layout(location = 3) in vec4 loc3_1;
 struct VertexInputs0 {
   uint vertex_index;
   int loc0;
@@ -11,52 +15,17 @@
   vec4 loc3;
 };
 
-struct tint_symbol_2 {
-  int loc0;
-  uint loc1;
-  uint loc1_1;
-  vec4 loc3;
-  uint vertex_index;
-  uint instance_index;
-};
-
-struct tint_symbol_3 {
-  vec4 value;
-};
-
-vec4 tint_symbol_inner(VertexInputs0 inputs0, uint loc1, uint instance_index, VertexInputs1 inputs1) {
+vec4 tint_symbol(VertexInputs0 inputs0, uint loc1, uint instance_index, VertexInputs1 inputs1) {
   uint foo = (inputs0.vertex_index + instance_index);
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol_3 tint_symbol(tint_symbol_2 tint_symbol_1) {
-  VertexInputs0 tint_symbol_4 = VertexInputs0(tint_symbol_1.vertex_index, tint_symbol_1.loc0);
-  VertexInputs1 tint_symbol_5 = VertexInputs1(tint_symbol_1.loc1_1, tint_symbol_1.loc3);
-  vec4 inner_result = tint_symbol_inner(tint_symbol_4, tint_symbol_1.loc1, tint_symbol_1.instance_index, tint_symbol_5);
-  tint_symbol_3 wrapper_result = tint_symbol_3(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-layout(location = 0) in int loc0;
-layout(location = 1) in uint loc1;
-layout(location = 2) in uint loc1_1;
-layout(location = 3) in vec4 loc3;
-
-
-
-
 void main() {
-  tint_symbol_2 inputs;
-  inputs.loc0 = loc0;
-  inputs.loc1 = loc1;
-  inputs.loc1_1 = loc1_1;
-  inputs.loc3 = loc3;
-  inputs.vertex_index = uint(gl_VertexID);
-  inputs.instance_index = uint(gl_InstanceID);
-  tint_symbol_3 outputs;
-  outputs = tint_symbol(inputs);
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  VertexInputs0 tint_symbol_1 = VertexInputs0(uint(gl_VertexID), loc0_1);
+  VertexInputs1 tint_symbol_2 = VertexInputs1(loc1_2, loc3_1);
+  vec4 inner_result = tint_symbol(tint_symbol_1, loc1_1, uint(gl_InstanceID), tint_symbol_2);
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
diff --git a/test/bug/chromium/1273230.wgsl.expected.glsl b/test/bug/chromium/1273230.wgsl.expected.glsl
index f05e2a2..b3db713 100644
--- a/test/bug/chromium/1273230.wgsl.expected.glsl
+++ b/test/bug/chromium/1273230.wgsl.expected.glsl
@@ -111,11 +111,7 @@
   int g55 = atomicOr(LUT.values[0], 0);
 }
 
-struct tint_symbol_1 {
-  uvec3 GlobalInvocationID;
-};
-
-void main_count_inner(uvec3 GlobalInvocationID) {
+void main_count(uvec3 GlobalInvocationID) {
   uint triangleIndex = GlobalInvocationID.x;
   if ((triangleIndex >= uniforms.numTriangles)) {
     return;
@@ -134,15 +130,7 @@
 }
 
 layout(local_size_x = 128, local_size_y = 1, local_size_z = 1) in;
-void main_count(tint_symbol_1 tint_symbol) {
-  main_count_inner(tint_symbol.GlobalInvocationID);
+void main() {
+  main_count(gl_GlobalInvocationID);
   return;
 }
-
-
-void main() {
-  tint_symbol_1 inputs;
-  inputs.GlobalInvocationID = gl_GlobalInvocationID;
-  main_count(inputs);
-}
-
diff --git a/test/bug/chromium/1273451.wgsl.expected.glsl b/test/bug/chromium/1273451.wgsl.expected.glsl
index 7024728..1922ee6 100644
--- a/test/bug/chromium/1273451.wgsl.expected.glsl
+++ b/test/bug/chromium/1273451.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 struct A {
   int a;
 };
diff --git a/test/bug/dawn/947.wgsl.expected.glsl b/test/bug/dawn/947.wgsl.expected.glsl
index 5bb2e86..18ec58d 100644
--- a/test/bug/dawn/947.wgsl.expected.glsl
+++ b/test/bug/dawn/947.wgsl.expected.glsl
@@ -1,6 +1,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec2 texcoords_1;
 struct Uniforms {
   vec2 u_scale;
   vec2 u_offset;
@@ -16,16 +17,7 @@
   vec4 position;
 };
 
-struct tint_symbol_2 {
-  uint VertexIndex;
-};
-
-struct tint_symbol_3 {
-  vec2 texcoords;
-  vec4 position;
-};
-
-VertexOutputs vs_main_inner(uint VertexIndex) {
+VertexOutputs vs_main(uint VertexIndex) {
   vec2 texcoord[3] = vec2[3](vec2(-0.5f, 0.0f), vec2(1.5f, 0.0f), vec2(0.5f, 2.0f));
   VertexOutputs tint_symbol = VertexOutputs(vec2(0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
   tint_symbol.position = vec4(((texcoord[VertexIndex] * 2.0f) - vec2(1.0f, 1.0f)), 0.0f, 1.0f);
@@ -38,39 +30,19 @@
   return tint_symbol;
 }
 
-struct tint_symbol_5 {
-  vec2 texcoord;
-};
-
-struct tint_symbol_6 {
-  vec4 value;
-};
-
-tint_symbol_3 vs_main(tint_symbol_2 tint_symbol_1) {
-  VertexOutputs inner_result = vs_main_inner(tint_symbol_1.VertexIndex);
-  tint_symbol_3 wrapper_result = tint_symbol_3(vec2(0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.texcoords = inner_result.texcoords;
-  wrapper_result.position = inner_result.position;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec2 texcoords;
-
-
 void main() {
-  tint_symbol_2 inputs;
-  inputs.VertexIndex = uint(gl_VertexID);
-  tint_symbol_3 outputs;
-  outputs = vs_main(inputs);
-  texcoords = outputs.texcoords;
-  gl_Position = outputs.position;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  VertexOutputs inner_result = vs_main(uint(gl_VertexID));
+  texcoords_1 = inner_result.texcoords;
+  gl_Position = inner_result.position;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
+layout(location = 0) in vec2 texcoord_1;
+layout(location = 0) out vec4 value;
 struct Uniforms {
   vec2 u_scale;
   vec2 u_offset;
@@ -81,26 +53,9 @@
   vec4 position;
 };
 
-struct tint_symbol_2 {
-  uint VertexIndex;
-};
-
-struct tint_symbol_3 {
-  vec2 texcoords;
-  vec4 position;
-};
-
-struct tint_symbol_5 {
-  vec2 texcoord;
-};
-
-struct tint_symbol_6 {
-  vec4 value;
-};
-
 uniform highp sampler2D myTexture_mySampler;
 
-vec4 fs_main_inner(vec2 texcoord) {
+vec4 fs_main(vec2 texcoord) {
   vec2 clampedTexcoord = clamp(texcoord, vec2(0.0f, 0.0f), vec2(1.0f, 1.0f));
   if (!(all(equal(clampedTexcoord, texcoord)))) {
     discard;
@@ -109,20 +64,8 @@
   return srcColor;
 }
 
-tint_symbol_6 fs_main(tint_symbol_5 tint_symbol_4) {
-  vec4 inner_result_1 = fs_main_inner(tint_symbol_4.texcoord);
-  tint_symbol_6 wrapper_result_1 = tint_symbol_6(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result_1.value = inner_result_1;
-  return wrapper_result_1;
-}
-layout(location = 0) in vec2 texcoord;
-layout(location = 0) out vec4 value;
-
 void main() {
-  tint_symbol_5 inputs;
-  inputs.texcoord = texcoord;
-  tint_symbol_6 outputs;
-  outputs = fs_main(inputs);
-  value = outputs.value;
+  vec4 inner_result = fs_main(texcoord_1);
+  value = inner_result;
+  return;
 }
-
diff --git a/test/bug/fxc/dyn_array_idx/read/function.wgsl.expected.glsl b/test/bug/fxc/dyn_array_idx/read/function.wgsl.expected.glsl
index 38dd9fb..d40bfd5 100644
--- a/test/bug/fxc/dyn_array_idx/read/function.wgsl.expected.glsl
+++ b/test/bug/fxc/dyn_array_idx/read/function.wgsl.expected.glsl
@@ -20,14 +20,13 @@
 layout(binding = 1) buffer Result_1 {
   int tint_symbol;
 } result;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   S s = S(int[64](0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
   result.tint_symbol = s.data[ubo.dynamic_idx];
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/bug/fxc/dyn_array_idx/read/private.wgsl.expected.glsl b/test/bug/fxc/dyn_array_idx/read/private.wgsl.expected.glsl
index 63c16e0..e2fef20 100644
--- a/test/bug/fxc/dyn_array_idx/read/private.wgsl.expected.glsl
+++ b/test/bug/fxc/dyn_array_idx/read/private.wgsl.expected.glsl
@@ -21,13 +21,12 @@
   int tint_symbol;
 } result;
 S s = S(int[64](0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   result.tint_symbol = s.data[ubo.dynamic_idx];
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/bug/fxc/dyn_array_idx/read/storage.wgsl.expected.glsl b/test/bug/fxc/dyn_array_idx/read/storage.wgsl.expected.glsl
index 1bc7ef2..457175e 100644
--- a/test/bug/fxc/dyn_array_idx/read/storage.wgsl.expected.glsl
+++ b/test/bug/fxc/dyn_array_idx/read/storage.wgsl.expected.glsl
@@ -23,13 +23,12 @@
 layout(binding = 1) buffer SSBO_1 {
   int data[4];
 } ssbo;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   result.tint_symbol = ssbo.data[ubo.dynamic_idx];
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/bug/fxc/dyn_array_idx/read/uniform.wgsl.expected.glsl b/test/bug/fxc/dyn_array_idx/read/uniform.wgsl.expected.glsl
index 118dd73..0b495f2 100644
--- a/test/bug/fxc/dyn_array_idx/read/uniform.wgsl.expected.glsl
+++ b/test/bug/fxc/dyn_array_idx/read/uniform.wgsl.expected.glsl
@@ -18,13 +18,12 @@
 layout(binding = 2) buffer Result_1 {
   int tint_symbol;
 } result;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   result.tint_symbol = ubo.data[ubo.dynamic_idx].x;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.glsl b/test/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.glsl
index b3052dd..7e4929f 100644
--- a/test/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.glsl
+++ b/test/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.glsl
@@ -21,11 +21,7 @@
   int tint_symbol;
 } result;
 shared S s;
-struct tint_symbol_2 {
-  uint local_invocation_index;
-};
-
-void f_inner(uint local_invocation_index) {
+void f(uint local_invocation_index) {
   {
     for(uint idx = local_invocation_index; (idx < 64u); idx = (idx + 1u)) {
       uint i = idx;
@@ -37,15 +33,7 @@
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void f(tint_symbol_2 tint_symbol_1) {
-  f_inner(tint_symbol_1.local_invocation_index);
+void main() {
+  f(gl_LocalInvocationIndex);
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
-  f(inputs);
-}
-
diff --git a/test/bug/fxc/dyn_array_idx/write/function.wgsl.expected.glsl b/test/bug/fxc/dyn_array_idx/write/function.wgsl.expected.glsl
index 3be6198..100f67b 100644
--- a/test/bug/fxc/dyn_array_idx/write/function.wgsl.expected.glsl
+++ b/test/bug/fxc/dyn_array_idx/write/function.wgsl.expected.glsl
@@ -20,15 +20,14 @@
 layout(binding = 1) buffer Result_1 {
   int tint_symbol;
 } result;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   S s = S(int[64](0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
   s.data[ubo.dynamic_idx] = 1;
   result.tint_symbol = s.data[3];
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/bug/fxc/dyn_array_idx/write/function_via_param.wgsl.expected.glsl b/test/bug/fxc/dyn_array_idx/write/function_via_param.wgsl.expected.glsl
index ead018c..997dd2e 100644
--- a/test/bug/fxc/dyn_array_idx/write/function_via_param.wgsl.expected.glsl
+++ b/test/bug/fxc/dyn_array_idx/write/function_via_param.wgsl.expected.glsl
@@ -24,15 +24,14 @@
   p.data[ubo.dynamic_idx] = 1;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   S s = S(int[64](0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
   x(s);
   result.tint_symbol = s.data[3];
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/bug/fxc/dyn_array_idx/write/private.wgsl.expected.glsl b/test/bug/fxc/dyn_array_idx/write/private.wgsl.expected.glsl
index 18c763b..0a776e7 100644
--- a/test/bug/fxc/dyn_array_idx/write/private.wgsl.expected.glsl
+++ b/test/bug/fxc/dyn_array_idx/write/private.wgsl.expected.glsl
@@ -21,14 +21,13 @@
   int tint_symbol;
 } result;
 S s = S(int[64](0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   s.data[ubo.dynamic_idx] = 1;
   result.tint_symbol = s.data[3];
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/bug/fxc/dyn_array_idx/write/private_via_param.wgsl.expected.glsl b/test/bug/fxc/dyn_array_idx/write/private_via_param.wgsl.expected.glsl
index 61e4347..a4c0ad3 100644
--- a/test/bug/fxc/dyn_array_idx/write/private_via_param.wgsl.expected.glsl
+++ b/test/bug/fxc/dyn_array_idx/write/private_via_param.wgsl.expected.glsl
@@ -25,14 +25,13 @@
   p.data[ubo.dynamic_idx] = 1;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   x(s);
   result.tint_symbol = s.data[3];
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/bug/fxc/dyn_array_idx/write/storage.wgsl.expected.glsl b/test/bug/fxc/dyn_array_idx/write/storage.wgsl.expected.glsl
index 279d1cd..aa44922 100644
--- a/test/bug/fxc/dyn_array_idx/write/storage.wgsl.expected.glsl
+++ b/test/bug/fxc/dyn_array_idx/write/storage.wgsl.expected.glsl
@@ -23,14 +23,13 @@
 layout(binding = 1) buffer SSBO_1 {
   int data[4];
 } ssbo;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   ssbo.data[ubo.dynamic_idx] = 1;
   result.tint_symbol = ssbo.data[3];
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.glsl b/test/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.glsl
index 2a4d1c0..49e6366 100644
--- a/test/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.glsl
+++ b/test/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.glsl
@@ -21,11 +21,7 @@
   int tint_symbol;
 } result;
 shared S s;
-struct tint_symbol_2 {
-  uint local_invocation_index;
-};
-
-void f_inner(uint local_invocation_index) {
+void f(uint local_invocation_index) {
   {
     for(uint idx = local_invocation_index; (idx < 64u); idx = (idx + 1u)) {
       uint i = idx;
@@ -38,15 +34,7 @@
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void f(tint_symbol_2 tint_symbol_1) {
-  f_inner(tint_symbol_1.local_invocation_index);
+void main() {
+  f(gl_LocalInvocationIndex);
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
-  f(inputs);
-}
-
diff --git a/test/bug/fxc/gradient_in_varying_loop/1112.wgsl.expected.glsl b/test/bug/fxc/gradient_in_varying_loop/1112.wgsl.expected.glsl
index d63995b..b11b4b2 100644
--- a/test/bug/fxc/gradient_in_varying_loop/1112.wgsl.expected.glsl
+++ b/test/bug/fxc/gradient_in_varying_loop/1112.wgsl.expected.glsl
@@ -1,18 +1,12 @@
 #version 310 es
 precision mediump float;
 
-struct tint_symbol_2 {
-  vec2 vUV;
-};
-
-struct tint_symbol_3 {
-  vec4 value;
-};
-
+layout(location = 0) in vec2 vUV_1;
+layout(location = 0) out vec4 value;
 uniform highp sampler2D randomTexture_Sampler;
 uniform highp sampler2D depthTexture_Sampler;
 
-vec4 tint_symbol_inner(vec2 vUV) {
+vec4 tint_symbol(vec2 vUV) {
   vec3 random = texture(randomTexture_Sampler, vUV).rgb;
   int i = 0;
   while (true) {
@@ -43,20 +37,8 @@
   return vec4(1.0f);
 }
 
-tint_symbol_3 tint_symbol(tint_symbol_2 tint_symbol_1) {
-  vec4 inner_result = tint_symbol_inner(tint_symbol_1.vUV);
-  tint_symbol_3 wrapper_result = tint_symbol_3(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-layout(location = 0) in vec2 vUV;
-layout(location = 0) out vec4 value;
-
 void main() {
-  tint_symbol_2 inputs;
-  inputs.vUV = vUV;
-  tint_symbol_3 outputs;
-  outputs = tint_symbol(inputs);
-  value = outputs.value;
+  vec4 inner_result = tint_symbol(vUV_1);
+  value = inner_result;
+  return;
 }
-
diff --git a/test/bug/fxc/indexed_assign_to_array_in_struct/1206.wgsl.expected.glsl b/test/bug/fxc/indexed_assign_to_array_in_struct/1206.wgsl.expected.glsl
index 131bb21..c2c8f93 100644
--- a/test/bug/fxc/indexed_assign_to_array_in_struct/1206.wgsl.expected.glsl
+++ b/test/bug/fxc/indexed_assign_to_array_in_struct/1206.wgsl.expected.glsl
@@ -19,14 +19,13 @@
   uint i;
 } sim;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   Particle particle = particles.p[0];
   particle.position[sim.i] = particle.position[sim.i];
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_x.wgsl.expected.glsl b/test/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_x.wgsl.expected.glsl
index 74dc588..7decbe8 100644
--- a/test/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_x.wgsl.expected.glsl
+++ b/test/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_x.wgsl.expected.glsl
@@ -11,14 +11,13 @@
   uint j;
 } uniforms;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   mat2x4 m1 = mat2x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
   m1[uniforms.i][0] = 1.0f;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_xy.wgsl.expected.glsl b/test/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_xy.wgsl.expected.glsl
index b7701f1..9939fe9 100644
--- a/test/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_xy.wgsl.expected.glsl
+++ b/test/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_xy.wgsl.expected.glsl
@@ -11,14 +11,13 @@
   uint j;
 } uniforms;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   mat2x4 m1 = mat2x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
   m1[uniforms.i][uniforms.j] = 1.0f;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_y.wgsl.expected.glsl b/test/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_y.wgsl.expected.glsl
index 31fe4d4..a9e2933 100644
--- a/test/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_y.wgsl.expected.glsl
+++ b/test/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_y.wgsl.expected.glsl
@@ -12,13 +12,12 @@
 } uniforms;
 
 mat2x4 m1 = mat2x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   m1[0][uniforms.j] = 1.0f;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/bug/fxc/matrix_assignment_dynamic_index/local_assign_vector.wgsl.expected.glsl b/test/bug/fxc/matrix_assignment_dynamic_index/local_assign_vector.wgsl.expected.glsl
index 021a595..049b481 100644
--- a/test/bug/fxc/matrix_assignment_dynamic_index/local_assign_vector.wgsl.expected.glsl
+++ b/test/bug/fxc/matrix_assignment_dynamic_index/local_assign_vector.wgsl.expected.glsl
@@ -11,14 +11,13 @@
   uint j;
 } uniforms;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   mat2x4 m1 = mat2x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
   m1[uniforms.i] = vec4(1.0f);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_x.wgsl.expected.glsl b/test/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_x.wgsl.expected.glsl
index 0cf6f23..8765d83 100644
--- a/test/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_x.wgsl.expected.glsl
+++ b/test/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_x.wgsl.expected.glsl
@@ -12,13 +12,12 @@
 } uniforms;
 
 mat2x4 m1 = mat2x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   m1[uniforms.i][0] = 1.0f;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_xy.wgsl.expected.glsl b/test/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_xy.wgsl.expected.glsl
index 8d28577..b33ca04 100644
--- a/test/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_xy.wgsl.expected.glsl
+++ b/test/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_xy.wgsl.expected.glsl
@@ -12,13 +12,12 @@
 } uniforms;
 
 mat2x4 m1 = mat2x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   m1[uniforms.i][uniforms.j] = 1.0f;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_y.wgsl.expected.glsl b/test/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_y.wgsl.expected.glsl
index 31fe4d4..a9e2933 100644
--- a/test/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_y.wgsl.expected.glsl
+++ b/test/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_y.wgsl.expected.glsl
@@ -12,13 +12,12 @@
 } uniforms;
 
 mat2x4 m1 = mat2x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   m1[0][uniforms.j] = 1.0f;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/bug/fxc/matrix_assignment_dynamic_index/module_assign_vector.wgsl.expected.glsl b/test/bug/fxc/matrix_assignment_dynamic_index/module_assign_vector.wgsl.expected.glsl
index 3f2bbc0..6c55fcc 100644
--- a/test/bug/fxc/matrix_assignment_dynamic_index/module_assign_vector.wgsl.expected.glsl
+++ b/test/bug/fxc/matrix_assignment_dynamic_index/module_assign_vector.wgsl.expected.glsl
@@ -12,13 +12,12 @@
 } uniforms;
 
 mat2x4 m1 = mat2x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   m1[uniforms.i] = vec4(1.0f);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/bug/fxc/vector_assignment_in_loop/loop_call_with_loop.wgsl.expected.glsl b/test/bug/fxc/vector_assignment_in_loop/loop_call_with_loop.wgsl.expected.glsl
index 73303a1..76c960a 100644
--- a/test/bug/fxc/vector_assignment_in_loop/loop_call_with_loop.wgsl.expected.glsl
+++ b/test/bug/fxc/vector_assignment_in_loop/loop_call_with_loop.wgsl.expected.glsl
@@ -16,17 +16,16 @@
   }
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   {
     for(int i = 0; (i < 2); i = (i + 1)) {
       foo();
     }
   }
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/bug/fxc/vector_assignment_in_loop/loop_call_with_no_loop.wgsl.expected.glsl b/test/bug/fxc/vector_assignment_in_loop/loop_call_with_no_loop.wgsl.expected.glsl
index 66cdf90..dcec4ef 100644
--- a/test/bug/fxc/vector_assignment_in_loop/loop_call_with_no_loop.wgsl.expected.glsl
+++ b/test/bug/fxc/vector_assignment_in_loop/loop_call_with_no_loop.wgsl.expected.glsl
@@ -13,17 +13,16 @@
   v2b[i] = true;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   {
     for(int i = 0; (i < 2); i = (i + 1)) {
       foo();
     }
   }
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/bug/fxc/vector_assignment_in_loop/loop_types_all.wgsl.expected.glsl b/test/bug/fxc/vector_assignment_in_loop/loop_types_all.wgsl.expected.glsl
index d577a0b..cb4d65f 100644
--- a/test/bug/fxc/vector_assignment_in_loop/loop_types_all.wgsl.expected.glsl
+++ b/test/bug/fxc/vector_assignment_in_loop/loop_types_all.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   vec2 v2f = vec2(0.0f, 0.0f);
   vec3 v3f = vec3(0.0f, 0.0f, 0.0f);
@@ -31,10 +30,10 @@
       v4b[i] = true;
     }
   }
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/bug/fxc/vector_assignment_in_loop/loop_types_repeated.wgsl.expected.glsl b/test/bug/fxc/vector_assignment_in_loop/loop_types_repeated.wgsl.expected.glsl
index 70a28f6..0ded303 100644
--- a/test/bug/fxc/vector_assignment_in_loop/loop_types_repeated.wgsl.expected.glsl
+++ b/test/bug/fxc/vector_assignment_in_loop/loop_types_repeated.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   vec2 v2f = vec2(0.0f, 0.0f);
   vec2 v2f_2 = vec2(0.0f, 0.0f);
@@ -23,10 +22,10 @@
       v2b_2[i] = true;
     }
   }
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/bug/fxc/vector_assignment_in_loop/loop_types_some.wgsl.expected.glsl b/test/bug/fxc/vector_assignment_in_loop/loop_types_some.wgsl.expected.glsl
index 1c080e3..dc948de 100644
--- a/test/bug/fxc/vector_assignment_in_loop/loop_types_some.wgsl.expected.glsl
+++ b/test/bug/fxc/vector_assignment_in_loop/loop_types_some.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   vec2 v2f = vec2(0.0f, 0.0f);
   vec3 v3f = vec3(0.0f, 0.0f, 0.0f);
@@ -32,10 +31,10 @@
   v4u[i] = 1u;
   v3b[i] = true;
   v4b[i] = true;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/bug/fxc/vector_assignment_in_loop/no_loop.wgsl.expected.glsl b/test/bug/fxc/vector_assignment_in_loop/no_loop.wgsl.expected.glsl
index 32a381e..6e316d9 100644
--- a/test/bug/fxc/vector_assignment_in_loop/no_loop.wgsl.expected.glsl
+++ b/test/bug/fxc/vector_assignment_in_loop/no_loop.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   vec2 v2f = vec2(0.0f, 0.0f);
   vec3 v3f = vec3(0.0f, 0.0f, 0.0f);
@@ -28,10 +27,10 @@
   v2b[i] = true;
   v3b[i] = true;
   v4b[i] = true;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/bug/tint/1046.wgsl.expected.glsl b/test/bug/tint/1046.wgsl.expected.glsl
index aff09cb..68ab312 100644
--- a/test/bug/tint/1046.wgsl.expected.glsl
+++ b/test/bug/tint/1046.wgsl.expected.glsl
@@ -1,8 +1,11 @@
-SKIP: FAILED
-
 #version 310 es
 precision mediump float;
 
+layout(location = 0) in vec4 view_position_1;
+layout(location = 1) in vec4 normal_1;
+layout(location = 2) in vec2 uv_1;
+layout(location = 3) in vec4 color_1;
+layout(location = 0) out vec4 color_2;
 struct PointLight {
   vec4 position;
 };
@@ -38,53 +41,15 @@
   vec4 color;
 };
 
-struct tint_symbol_3 {
-  vec4 view_position;
-  vec4 normal;
-  vec2 uv;
-  vec4 color;
-  vec4 position;
-};
-
-struct tint_symbol_4 {
-  vec4 color;
-};
-
-FragmentOutput tint_symbol_inner(FragmentInput fragment) {
+FragmentOutput tint_symbol(FragmentInput fragment) {
   FragmentOutput tint_symbol_1 = FragmentOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f));
   tint_symbol_1.color = vec4(1.0f, 0.0f, 0.0f, 1.0f);
   return tint_symbol_1;
 }
 
-tint_symbol_4 tint_symbol(tint_symbol_3 tint_symbol_2) {
-  FragmentInput tint_symbol_5 = FragmentInput(tint_symbol_2.position, tint_symbol_2.view_position, tint_symbol_2.normal, tint_symbol_2.uv, tint_symbol_2.color);
-  FragmentOutput inner_result = tint_symbol_inner(tint_symbol_5);
-  tint_symbol_4 wrapper_result = tint_symbol_4(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.color = inner_result.color;
-  return wrapper_result;
-}
-layout(location = 0) in vec4 view_position;
-layout(location = 1) in vec4 normal;
-layout(location = 2) in vec2 uv;
-layout(location = 3) in vec4 color;
-
-layout(location = 0) out vec4 color;
-
 void main() {
-  tint_symbol_3 inputs;
-  inputs.view_position = view_position;
-  inputs.normal = normal;
-  inputs.uv = uv;
-  inputs.color = color;
-  inputs.position = gl_FragCoord;
-  tint_symbol_4 outputs;
-  outputs = tint_symbol(inputs);
-  color = outputs.color;
+  FragmentInput tint_symbol_2 = FragmentInput(gl_FragCoord, view_position_1, normal_1, uv_1, color_1);
+  FragmentOutput inner_result = tint_symbol(tint_symbol_2);
+  color_2 = inner_result.color;
+  return;
 }
-
-Error parsing GLSL shader:
-ERROR: 0:69: 'color' : redefinition 
-ERROR: 1 compilation errors.  No code generated.
-
-
-
diff --git a/test/bug/tint/1064.wgsl.expected.glsl b/test/bug/tint/1064.wgsl.expected.glsl
index 2f81388..290d580 100644
--- a/test/bug/tint/1064.wgsl.expected.glsl
+++ b/test/bug/tint/1064.wgsl.expected.glsl
@@ -14,10 +14,9 @@
       }
     }
   }
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/bug/tint/1076.wgsl.expected.glsl b/test/bug/tint/1076.wgsl.expected.glsl
index e79fb56..1b1ec51 100644
--- a/test/bug/tint/1076.wgsl.expected.glsl
+++ b/test/bug/tint/1076.wgsl.expected.glsl
@@ -3,58 +3,33 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) in float a_1;
+layout(location = 1) in float b_1;
+layout(location = 0) out float a_2;
 struct FragIn {
   float a;
   uint mask;
 };
 
-struct tint_symbol_3 {
-  float a;
-  float b;
-  uint mask;
-};
-
-struct tint_symbol_4 {
-  float a;
-  uint mask;
-};
-
-FragIn tint_symbol_inner(FragIn tint_symbol_1, float b) {
+FragIn tint_symbol(FragIn tint_symbol_1, float b) {
   if ((tint_symbol_1.mask == 0u)) {
     return tint_symbol_1;
   }
-  FragIn tint_symbol_5 = FragIn(b, 1u);
-  return tint_symbol_5;
+  FragIn tint_symbol_2 = FragIn(b, 1u);
+  return tint_symbol_2;
 }
 
-tint_symbol_4 tint_symbol(tint_symbol_3 tint_symbol_2) {
-  FragIn tint_symbol_6 = FragIn(tint_symbol_2.a, tint_symbol_2.mask);
-  FragIn inner_result = tint_symbol_inner(tint_symbol_6, tint_symbol_2.b);
-  tint_symbol_4 wrapper_result = tint_symbol_4(0.0f, 0u);
-  wrapper_result.a = inner_result.a;
-  wrapper_result.mask = inner_result.mask;
-  return wrapper_result;
-}
-layout(location = 0) in float a;
-layout(location = 1) in float b;
-
-layout(location = 0) out float a;
-
-
 void main() {
-  tint_symbol_3 inputs;
-  inputs.a = a;
-  inputs.b = b;
-  inputs.mask = uint(gl_SampleMask);
-  tint_symbol_4 outputs;
-  outputs = tint_symbol(inputs);
-  a = outputs.a;
-  gl_SampleMask = outputs.mask;
+  FragIn tint_symbol_3 = FragIn(a_1, uint(gl_SampleMask[0]));
+  FragIn inner_result = tint_symbol(tint_symbol_3, b_1);
+  a_2 = inner_result.a;
+  gl_SampleMask_1[0] = inner_result.mask;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:39: 'a' : redefinition 
-ERROR: 1 compilation errors.  No code generated.
+ERROR: 0:21: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables
+ERROR: 0:21: '' : compilation terminated 
+ERROR: 2 compilation errors.  No code generated.
 
 
 
diff --git a/test/bug/tint/1081.wgsl.expected.glsl b/test/bug/tint/1081.wgsl.expected.glsl
index 57544d7..3b4deae 100644
--- a/test/bug/tint/1081.wgsl.expected.glsl
+++ b/test/bug/tint/1081.wgsl.expected.glsl
@@ -1,6 +1,8 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 1) flat in ivec3 x_1;
+layout(location = 2) out int value;
 int f(int x) {
   if ((x == 10)) {
     discard;
@@ -8,15 +10,7 @@
   return x;
 }
 
-struct tint_symbol_2 {
-  ivec3 x;
-};
-
-struct tint_symbol_3 {
-  int value;
-};
-
-int tint_symbol_inner(ivec3 x) {
+int tint_symbol(ivec3 x) {
   int y = x.x;
   while (true) {
     int r = f(y);
@@ -27,20 +21,8 @@
   return y;
 }
 
-tint_symbol_3 tint_symbol(tint_symbol_2 tint_symbol_1) {
-  int inner_result = tint_symbol_inner(tint_symbol_1.x);
-  tint_symbol_3 wrapper_result = tint_symbol_3(0);
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-layout(location = 1) flat in ivec3 x;
-layout(location = 2) out int value;
-
 void main() {
-  tint_symbol_2 inputs;
-  inputs.x = x;
-  tint_symbol_3 outputs;
-  outputs = tint_symbol(inputs);
-  value = outputs.value;
+  int inner_result = tint_symbol(x_1);
+  value = inner_result;
+  return;
 }
-
diff --git a/test/bug/tint/1083.wgsl.expected.glsl b/test/bug/tint/1083.wgsl.expected.glsl
index 8c230a2..2d273c7 100644
--- a/test/bug/tint/1083.wgsl.expected.glsl
+++ b/test/bug/tint/1083.wgsl.expected.glsl
@@ -1,13 +1,12 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   int c = (1 / 0);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/bug/tint/1086.wgsl.expected.glsl b/test/bug/tint/1086.wgsl.expected.glsl
index 0c69c4f..ecb7dad 100644
--- a/test/bug/tint/1086.wgsl.expected.glsl
+++ b/test/bug/tint/1086.wgsl.expected.glsl
@@ -12,10 +12,9 @@
 
 void f() {
   g();
-  return;
 }
 
 void main() {
   f();
+  return;
 }
-
diff --git a/test/bug/tint/1088.spvasm.expected.glsl b/test/bug/tint/1088.spvasm.expected.glsl
index c665add..a94d391 100644
--- a/test/bug/tint/1088.spvasm.expected.glsl
+++ b/test/bug/tint/1088.spvasm.expected.glsl
@@ -1,6 +1,10 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) in vec3 position_param_1;
+layout(location = 2) in vec2 uv_param_1;
+layout(location = 1) in vec3 normal_param_1;
+layout(location = 0) out vec2 vUV_1_1;
 struct tint_padded_array_element {
   float el;
 };
@@ -53,49 +57,20 @@
   vec2 vUV_1;
 };
 
-struct tint_symbol_3 {
-  vec3 position_param;
-  vec3 normal_param;
-  vec2 uv_param;
-};
-
-struct tint_symbol_4 {
-  vec2 vUV_1;
-  vec4 tint_symbol;
-};
-
-main_out tint_symbol_1_inner(vec3 position_param, vec2 uv_param, vec3 normal_param) {
+main_out tint_symbol_1(vec3 position_param, vec2 uv_param, vec3 normal_param) {
   position = position_param;
   uv = uv_param;
   normal = normal_param;
   main_1();
-  main_out tint_symbol_5 = main_out(tint_symbol, vUV);
-  return tint_symbol_5;
+  main_out tint_symbol_2 = main_out(tint_symbol, vUV);
+  return tint_symbol_2;
 }
 
-tint_symbol_4 tint_symbol_1(tint_symbol_3 tint_symbol_2) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_2.position_param, tint_symbol_2.uv_param, tint_symbol_2.normal_param);
-  tint_symbol_4 wrapper_result = tint_symbol_4(vec2(0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.tint_symbol = inner_result.tint_symbol;
-  wrapper_result.vUV_1 = inner_result.vUV_1;
-  return wrapper_result;
-}
-layout(location = 0) in vec3 position_param;
-layout(location = 1) in vec3 normal_param;
-layout(location = 2) in vec2 uv_param;
-layout(location = 0) out vec2 vUV_1;
-
-
 void main() {
-  tint_symbol_3 inputs;
-  inputs.position_param = position_param;
-  inputs.normal_param = normal_param;
-  inputs.uv_param = uv_param;
-  tint_symbol_4 outputs;
-  outputs = tint_symbol_1(inputs);
-  vUV_1 = outputs.vUV_1;
-  gl_Position = outputs.tint_symbol;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  main_out inner_result = tint_symbol_1(position_param_1, uv_param_1, normal_param_1);
+  gl_Position = inner_result.tint_symbol;
+  vUV_1_1 = inner_result.vUV_1;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
diff --git a/test/bug/tint/1113.wgsl.expected.glsl b/test/bug/tint/1113.wgsl.expected.glsl
index 1fbe960..89c5c46 100644
--- a/test/bug/tint/1113.wgsl.expected.glsl
+++ b/test/bug/tint/1113.wgsl.expected.glsl
@@ -91,11 +91,7 @@
   int g55 = atomicOr(LUT.values[0], 0);
 }
 
-struct tint_symbol_1 {
-  uvec3 GlobalInvocationID;
-};
-
-void main_count_inner(uvec3 GlobalInvocationID) {
+void main_count(uvec3 GlobalInvocationID) {
   uint triangleIndex = GlobalInvocationID.x;
   if ((triangleIndex >= uniforms.numTriangles)) {
     return;
@@ -119,27 +115,11 @@
   }
 }
 
-struct tint_symbol_3 {
-  uvec3 GlobalInvocationID;
-};
-
-struct tint_symbol_5 {
-  uvec3 GlobalInvocationID;
-};
-
 layout(local_size_x = 128, local_size_y = 1, local_size_z = 1) in;
-void main_count(tint_symbol_1 tint_symbol) {
-  main_count_inner(tint_symbol.GlobalInvocationID);
+void main() {
+  main_count(gl_GlobalInvocationID);
   return;
 }
-
-
-void main() {
-  tint_symbol_1 inputs;
-  inputs.GlobalInvocationID = gl_GlobalInvocationID;
-  main_count(inputs);
-}
-
 #version 310 es
 precision mediump float;
 
@@ -211,15 +191,7 @@
   int g55 = atomicOr(LUT.values[0], 0);
 }
 
-struct tint_symbol_1 {
-  uvec3 GlobalInvocationID;
-};
-
-struct tint_symbol_3 {
-  uvec3 GlobalInvocationID;
-};
-
-void main_create_lut_inner(uvec3 GlobalInvocationID) {
+void main_create_lut(uvec3 GlobalInvocationID) {
   uint voxelIndex = GlobalInvocationID.x;
   doIgnore();
   uint maxVoxels = ((uniforms.gridSize * uniforms.gridSize) * uniforms.gridSize);
@@ -234,23 +206,11 @@
   atomicExchange(LUT.values[voxelIndex], offset);
 }
 
-struct tint_symbol_5 {
-  uvec3 GlobalInvocationID;
-};
-
 layout(local_size_x = 128, local_size_y = 1, local_size_z = 1) in;
-void main_create_lut(tint_symbol_3 tint_symbol_2) {
-  main_create_lut_inner(tint_symbol_2.GlobalInvocationID);
+void main() {
+  main_create_lut(gl_GlobalInvocationID);
   return;
 }
-
-
-void main() {
-  tint_symbol_3 inputs;
-  inputs.GlobalInvocationID = gl_GlobalInvocationID;
-  main_create_lut(inputs);
-}
-
 #version 310 es
 precision mediump float;
 
@@ -344,19 +304,7 @@
   int g55 = atomicOr(LUT.values[0], 0);
 }
 
-struct tint_symbol_1 {
-  uvec3 GlobalInvocationID;
-};
-
-struct tint_symbol_3 {
-  uvec3 GlobalInvocationID;
-};
-
-struct tint_symbol_5 {
-  uvec3 GlobalInvocationID;
-};
-
-void main_sort_triangles_inner(uvec3 GlobalInvocationID) {
+void main_sort_triangles(uvec3 GlobalInvocationID) {
   uint triangleIndex = GlobalInvocationID.x;
   doIgnore();
   if ((triangleIndex >= uniforms.numTriangles)) {
@@ -375,15 +323,7 @@
 }
 
 layout(local_size_x = 128, local_size_y = 1, local_size_z = 1) in;
-void main_sort_triangles(tint_symbol_5 tint_symbol_4) {
-  main_sort_triangles_inner(tint_symbol_4.GlobalInvocationID);
+void main() {
+  main_sort_triangles(gl_GlobalInvocationID);
   return;
 }
-
-
-void main() {
-  tint_symbol_5 inputs;
-  inputs.GlobalInvocationID = gl_GlobalInvocationID;
-  main_sort_triangles(inputs);
-}
-
diff --git a/test/bug/tint/1121.wgsl.expected.glsl b/test/bug/tint/1121.wgsl.expected.glsl
index c656693..667cba6 100644
--- a/test/bug/tint/1121.wgsl.expected.glsl
+++ b/test/bug/tint/1121.wgsl.expected.glsl
@@ -56,11 +56,7 @@
   vec4 fullScreenSize;
 } uniforms;
 
-struct tint_symbol_4 {
-  uvec3 GlobalInvocationID;
-};
-
-void tint_symbol_2_inner(uvec3 GlobalInvocationID) {
+void tint_symbol_2(uvec3 GlobalInvocationID) {
   uint index = GlobalInvocationID.x;
   if ((index >= config.numLights)) {
     return;
@@ -141,15 +137,7 @@
 }
 
 layout(local_size_x = 64, local_size_y = 1, local_size_z = 1) in;
-void tint_symbol_2(tint_symbol_4 tint_symbol_3) {
-  tint_symbol_2_inner(tint_symbol_3.GlobalInvocationID);
+void main() {
+  tint_symbol_2(gl_GlobalInvocationID);
   return;
 }
-
-
-void main() {
-  tint_symbol_4 inputs;
-  inputs.GlobalInvocationID = gl_GlobalInvocationID;
-  tint_symbol_2(inputs);
-}
-
diff --git a/test/bug/tint/1136.wgsl.expected.glsl b/test/bug/tint/1136.wgsl.expected.glsl
index 67d68ec..3af9770 100644
--- a/test/bug/tint/1136.wgsl.expected.glsl
+++ b/test/bug/tint/1136.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 struct Buffer {
   uint data;
 };
diff --git a/test/bug/tint/1321.wgsl.expected.glsl b/test/bug/tint/1321.wgsl.expected.glsl
index 6bff13a..f1b3b8b 100644
--- a/test/bug/tint/1321.wgsl.expected.glsl
+++ b/test/bug/tint/1321.wgsl.expected.glsl
@@ -14,10 +14,9 @@
       break;
     }
   }
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/bug/tint/1369.wgsl.expected.glsl b/test/bug/tint/1369.wgsl.expected.glsl
index bb2aa75..4d0b9b7 100644
--- a/test/bug/tint/1369.wgsl.expected.glsl
+++ b/test/bug/tint/1369.wgsl.expected.glsl
@@ -17,10 +17,9 @@
 void f() {
   bool v = call_discard();
   bool also_unreachable = false;
-  return;
 }
 
 void main() {
   f();
+  return;
 }
-
diff --git a/test/bug/tint/1385.wgsl.expected.glsl b/test/bug/tint/1385.wgsl.expected.glsl
index 9edbf0d..4031ab0 100644
--- a/test/bug/tint/1385.wgsl.expected.glsl
+++ b/test/bug/tint/1385.wgsl.expected.glsl
@@ -8,13 +8,12 @@
   return data.inner[0];
 }
 
-layout(local_size_x = 16, local_size_y = 16, local_size_z = 1) in;
 void tint_symbol() {
   foo();
-  return;
 }
 
+layout(local_size_x = 16, local_size_y = 16, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/bug/tint/219.spvasm.expected.glsl b/test/bug/tint/219.spvasm.expected.glsl
index cd71522..b407ed8 100644
--- a/test/bug/tint/219.spvasm.expected.glsl
+++ b/test/bug/tint/219.spvasm.expected.glsl
@@ -12,13 +12,12 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/bug/tint/221.wgsl.expected.glsl b/test/bug/tint/221.wgsl.expected.glsl
index 1c037d0..b724d8f 100644
--- a/test/bug/tint/221.wgsl.expected.glsl
+++ b/test/bug/tint/221.wgsl.expected.glsl
@@ -10,7 +10,6 @@
   uint count;
   uint data[50];
 } b;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   uint i = 0u;
   while (true) {
@@ -34,7 +33,8 @@
   return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/bug/tint/292.wgsl.expected.glsl b/test/bug/tint/292.wgsl.expected.glsl
index 8b91111..26706ef 100644
--- a/test/bug/tint/292.wgsl.expected.glsl
+++ b/test/bug/tint/292.wgsl.expected.glsl
@@ -1,29 +1,16 @@
 #version 310 es
 precision mediump float;
 
-struct tint_symbol_1 {
-  vec4 value;
-};
-
-vec4 tint_symbol_inner() {
+vec4 tint_symbol() {
   vec3 light = vec3(1.200000048f, 1.0f, 2.0f);
   vec3 negative_light = -(light);
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol_1 tint_symbol() {
-  vec4 inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = tint_symbol();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
diff --git a/test/bug/tint/294.wgsl.expected.glsl b/test/bug/tint/294.wgsl.expected.glsl
index 4132290..4a87759 100644
--- a/test/bug/tint/294.wgsl.expected.glsl
+++ b/test/bug/tint/294.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 struct Light {
   vec3 position;
   vec3 colour;
diff --git a/test/bug/tint/369.wgsl.expected.glsl b/test/bug/tint/369.wgsl.expected.glsl
index 2e41e93..f4e86cf 100644
--- a/test/bug/tint/369.wgsl.expected.glsl
+++ b/test/bug/tint/369.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 struct S {
   mat2 m;
 };
diff --git a/test/bug/tint/403.wgsl.expected.glsl b/test/bug/tint/403.wgsl.expected.glsl
index a0a75b1..9950809 100644
--- a/test/bug/tint/403.wgsl.expected.glsl
+++ b/test/bug/tint/403.wgsl.expected.glsl
@@ -17,42 +17,22 @@
   mat2 transform2;
 } x_26;
 
-struct tint_symbol_3 {
-  uint tint_symbol_1;
-};
-
-struct tint_symbol_4 {
-  vec4 value;
-};
-
-vec4 tint_symbol_inner(uint tint_symbol_1) {
+vec4 tint_symbol(uint tint_symbol_1) {
   vec2 indexable[3] = vec2[3](vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
   mat2 x_23 = x_20.transform1;
   mat2 x_28 = x_26.transform2;
   uint x_46 = tint_symbol_1;
-  vec2 tint_symbol_5[3] = vec2[3](vec2(-1.0f, 1.0f), vec2(1.0f, 1.0f), vec2(-1.0f, -1.0f));
-  indexable = tint_symbol_5;
+  vec2 tint_symbol_2[3] = vec2[3](vec2(-1.0f, 1.0f), vec2(1.0f, 1.0f), vec2(-1.0f, -1.0f));
+  indexable = tint_symbol_2;
   vec2 x_51 = indexable[x_46];
   vec2 x_52 = (mat2((x_23[0u] + x_28[0u]), (x_23[1u] + x_28[1u])) * x_51);
   return vec4(x_52.x, x_52.y, 0.0f, 1.0f);
 }
 
-tint_symbol_4 tint_symbol(tint_symbol_3 tint_symbol_2) {
-  vec4 inner_result = tint_symbol_inner(tint_symbol_2.tint_symbol_1);
-  tint_symbol_4 wrapper_result = tint_symbol_4(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
-
 void main() {
-  tint_symbol_3 inputs;
-  inputs.tint_symbol_1 = uint(gl_VertexID);
-  tint_symbol_4 outputs;
-  outputs = tint_symbol(inputs);
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = tint_symbol(uint(gl_VertexID));
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
diff --git a/test/bug/tint/413.spvasm.expected.glsl b/test/bug/tint/413.spvasm.expected.glsl
index 5b7a5dd..0ad088b 100644
--- a/test/bug/tint/413.spvasm.expected.glsl
+++ b/test/bug/tint/413.spvasm.expected.glsl
@@ -13,13 +13,12 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/bug/tint/453.wgsl.expected.glsl b/test/bug/tint/453.wgsl.expected.glsl
index 2fca5d8..3adda5a 100644
--- a/test/bug/tint/453.wgsl.expected.glsl
+++ b/test/bug/tint/453.wgsl.expected.glsl
@@ -3,7 +3,6 @@
 
 uniform highp usampler2D Src_1;
 layout(r32ui) uniform highp writeonly uimage2D Dst_1;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   uvec4 srcValue = uvec4(0u, 0u, 0u, 0u);
   uvec4 x_22 = texelFetch(Src_1, ivec2(0, 0), 0);
@@ -14,7 +13,8 @@
   return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/bug/tint/492.wgsl.expected.glsl b/test/bug/tint/492.wgsl.expected.glsl
index ecec574..f4c36d6 100644
--- a/test/bug/tint/492.wgsl.expected.glsl
+++ b/test/bug/tint/492.wgsl.expected.glsl
@@ -8,13 +8,12 @@
 layout(binding = 0) buffer S_1 {
   int a;
 } buf;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   buf.a = 12;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/bug/tint/534.wgsl.expected.glsl b/test/bug/tint/534.wgsl.expected.glsl
index d7ae9be..8521fbd 100644
--- a/test/bug/tint/534.wgsl.expected.glsl
+++ b/test/bug/tint/534.wgsl.expected.glsl
@@ -22,13 +22,9 @@
   return 1u;
 }
 
-struct tint_symbol_3 {
-  uvec3 GlobalInvocationID;
-};
-
 uniform highp sampler2D src_1;
 uniform highp sampler2D dst_1;
-void tint_symbol_1_inner(uvec3 GlobalInvocationID) {
+void tint_symbol_1(uvec3 GlobalInvocationID) {
   ivec2 size = textureSize(src_1, 0);
   ivec2 dstTexCoord = ivec2(GlobalInvocationID.xy);
   ivec2 srcTexCoord = dstTexCoord;
@@ -59,15 +55,7 @@
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void tint_symbol_1(tint_symbol_3 tint_symbol_2) {
-  tint_symbol_1_inner(tint_symbol_2.GlobalInvocationID);
+void main() {
+  tint_symbol_1(gl_GlobalInvocationID);
   return;
 }
-
-
-void main() {
-  tint_symbol_3 inputs;
-  inputs.GlobalInvocationID = gl_GlobalInvocationID;
-  tint_symbol_1(inputs);
-}
-
diff --git a/test/bug/tint/744.wgsl.expected.glsl b/test/bug/tint/744.wgsl.expected.glsl
index 37a6a7d..cd60eb6 100644
--- a/test/bug/tint/744.wgsl.expected.glsl
+++ b/test/bug/tint/744.wgsl.expected.glsl
@@ -22,11 +22,7 @@
   uvec2 outShape;
 } uniforms;
 
-struct tint_symbol_2 {
-  uvec3 global_id;
-};
-
-void tint_symbol_inner(uvec3 global_id) {
+void tint_symbol(uvec3 global_id) {
   uvec2 resultCell = uvec2(global_id.y, global_id.x);
   uint dimInner = uniforms.aShape.y;
   uint dimOutter = uniforms.outShape.y;
@@ -43,15 +39,7 @@
 }
 
 layout(local_size_x = 2, local_size_y = 2, local_size_z = 1) in;
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.global_id);
+void main() {
+  tint_symbol(gl_GlobalInvocationID);
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.global_id = gl_GlobalInvocationID;
-  tint_symbol(inputs);
-}
-
diff --git a/test/bug/tint/749.spvasm.expected.glsl b/test/bug/tint/749.spvasm.expected.glsl
index 816362b..61e0490 100644
--- a/test/bug/tint/749.spvasm.expected.glsl
+++ b/test/bug/tint/749.spvasm.expected.glsl
@@ -1,6 +1,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct QuicksortObject {
   int numbers[10];
 };
@@ -64,18 +65,18 @@
   int x_34_save = x_33;
   int x_35 = obj.numbers[x_34_save];
   QuicksortObject x_943 = obj;
-  int tint_symbol_6[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-  QuicksortObject tint_symbol_7 = QuicksortObject(tint_symbol_6);
-  obj = tint_symbol_7;
+  int tint_symbol_3[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+  QuicksortObject tint_symbol_4 = QuicksortObject(tint_symbol_3);
+  obj = tint_symbol_4;
   obj = x_943;
   vec2 x_527 = vec2(x_526.x, x_526.x);
   int x_36_save = x_32;
   vec3 x_528 = vec3(x_524.x, x_524.z, x_524.x);
   obj.numbers[x_36_save] = x_35;
   QuicksortObject x_944 = obj;
-  int tint_symbol_8[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-  QuicksortObject tint_symbol_9 = QuicksortObject(tint_symbol_8);
-  obj = tint_symbol_9;
+  int tint_symbol_5[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+  QuicksortObject tint_symbol_6 = QuicksortObject(tint_symbol_5);
+  obj = tint_symbol_6;
   obj = x_944;
   vec3 x_529 = vec3(x_526.y, x_526.z, x_526.x);
   int x_945 = i;
@@ -98,9 +99,9 @@
   obj.numbers[x_36_save] = 0;
   obj.numbers[x_36_save] = x_949;
   QuicksortObject x_950 = obj;
-  int tint_symbol_10[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-  QuicksortObject tint_symbol_11 = QuicksortObject(tint_symbol_10);
-  obj = tint_symbol_11;
+  int tint_symbol_7[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+  QuicksortObject tint_symbol_8 = QuicksortObject(tint_symbol_7);
+  obj = tint_symbol_8;
   obj = x_950;
   vec3 x_532 = vec3(x_528.x, x_528.y, x_528.x);
   int x_951 = obj.numbers[x_34_save];
@@ -156,9 +157,9 @@
   vec3 x_536 = vec3(x_534.x, x_534.z, x_535.x);
   j_1 = 10;
   QuicksortObject x_960 = obj;
-  int tint_symbol_12[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-  QuicksortObject tint_symbol_13 = QuicksortObject(tint_symbol_12);
-  obj = tint_symbol_13;
+  int tint_symbol_9[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+  QuicksortObject tint_symbol_10 = QuicksortObject(tint_symbol_9);
+  obj = tint_symbol_10;
   obj = x_960;
   while (true) {
     int x_961 = pivot;
@@ -173,9 +174,9 @@
     pivot = x_963;
     x_537 = vec2(vec3(1.0f, 2.0f, 3.0f).y, vec3(1.0f, 2.0f, 3.0f).z);
     QuicksortObject x_964 = obj;
-    int tint_symbol_14[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-    QuicksortObject tint_symbol_15 = QuicksortObject(tint_symbol_14);
-    obj = tint_symbol_15;
+    int tint_symbol_11[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+    QuicksortObject tint_symbol_12 = QuicksortObject(tint_symbol_11);
+    obj = tint_symbol_12;
     obj = x_964;
     int x_56 = h;
     int x_965 = h;
@@ -209,9 +210,9 @@
     param_1 = x_971;
     int x_62 = obj.numbers[x_61_save];
     QuicksortObject x_972 = obj;
-    int tint_symbol_16[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-    QuicksortObject tint_symbol_17 = QuicksortObject(tint_symbol_16);
-    obj = tint_symbol_17;
+    int tint_symbol_13[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+    QuicksortObject tint_symbol_14 = QuicksortObject(tint_symbol_13);
+    obj = tint_symbol_14;
     obj = x_972;
     int x_63 = pivot;
     vec2 x_540 = vec2(vec3(1.0f, 2.0f, 3.0f).y, x_534.z);
@@ -269,9 +270,9 @@
       param_1 = x_985;
     }
     QuicksortObject x_986 = obj;
-    int tint_symbol_18[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-    QuicksortObject tint_symbol_19 = QuicksortObject(tint_symbol_18);
-    obj = tint_symbol_19;
+    int tint_symbol_15[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+    QuicksortObject tint_symbol_16 = QuicksortObject(tint_symbol_15);
+    obj = tint_symbol_16;
     obj = x_986;
     {
       int x_987 = h;
@@ -304,9 +305,9 @@
   obj.numbers[x_42_save] = x_993;
   vec2 x_549 = vec2(x_534.x, x_534.y);
   QuicksortObject x_994 = obj;
-  int tint_symbol_20[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-  QuicksortObject tint_symbol_21 = QuicksortObject(tint_symbol_20);
-  obj = tint_symbol_21;
+  int tint_symbol_17[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+  QuicksortObject tint_symbol_18 = QuicksortObject(tint_symbol_17);
+  obj = tint_symbol_18;
   obj = x_994;
   int x_995 = h;
   h = 0;
@@ -374,8 +375,8 @@
   param_5 = x_1007;
   h_1 = 9;
   int x_1008[10] = stack;
-  int tint_symbol_22[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-  stack = tint_symbol_22;
+  int tint_symbol_19[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+  stack = tint_symbol_19;
   stack = x_1008;
   vec2 x_556 = vec2(vec3(1.0f, 2.0f, 3.0f).y, vec3(1.0f, 2.0f, 3.0f).y);
   int x_1009 = param_5;
@@ -408,15 +409,15 @@
   param_4 = x_1015;
   int x_95 = l_1;
   QuicksortObject x_1016 = obj;
-  int tint_symbol_23[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-  QuicksortObject tint_symbol_24 = QuicksortObject(tint_symbol_23);
-  obj = tint_symbol_24;
+  int tint_symbol_20[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+  QuicksortObject tint_symbol_21 = QuicksortObject(tint_symbol_20);
+  obj = tint_symbol_21;
   obj = x_1016;
   vec3 x_560 = vec3(x_559.y, x_559.x, x_557.x);
   int x_96_save = x_94;
   int x_1017[10] = stack;
-  int tint_symbol_25[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-  stack = tint_symbol_25;
+  int tint_symbol_22[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+  stack = tint_symbol_22;
   stack = x_1017;
   vec3 x_561 = vec3(x_556.y, x_556.y, x_556.y);
   int x_1018 = l_1;
@@ -466,13 +467,13 @@
     h_1 = 0;
     h_1 = x_1028;
     int x_1029[10] = stack;
-    int tint_symbol_26[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-    stack = tint_symbol_26;
+    int tint_symbol_23[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+    stack = tint_symbol_23;
     stack = x_1029;
     int x_106 = top;
     int x_1030[10] = stack;
-    int tint_symbol_27[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-    stack = tint_symbol_27;
+    int tint_symbol_24[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+    stack = tint_symbol_24;
     stack = x_1030;
     vec2 x_567 = vec2(x_558.x, x_564.z);
     int x_1031 = param_4;
@@ -483,9 +484,9 @@
       break;
     }
     QuicksortObject x_1032 = obj;
-    int tint_symbol_28[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-    QuicksortObject tint_symbol_29 = QuicksortObject(tint_symbol_28);
-    obj = tint_symbol_29;
+    int tint_symbol_25[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+    QuicksortObject tint_symbol_26 = QuicksortObject(tint_symbol_25);
+    obj = tint_symbol_26;
     obj = x_1032;
     vec3 x_568 = vec3(x_559.y, x_559.x, x_563.y);
     int x_1033 = param_4;
@@ -510,8 +511,8 @@
     stack[x_96_save] = x_1037;
     int x_111 = stack[x_110_save];
     int x_1038[10] = stack;
-    int tint_symbol_30[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-    stack = tint_symbol_30;
+    int tint_symbol_27[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+    stack = tint_symbol_27;
     stack = x_1038;
     vec3 x_571 = vec3(x_559.y, x_559.x, x_564.y);
     int x_1039 = l_1;
@@ -519,8 +520,8 @@
     l_1 = x_1039;
     h_1 = x_111;
     int x_1040[10] = stack;
-    int tint_symbol_31[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-    stack = tint_symbol_31;
+    int tint_symbol_28[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+    stack = tint_symbol_28;
     stack = x_1040;
     vec2 x_572 = vec2(x_562.y, x_561.y);
     int x_1041 = p;
@@ -611,8 +612,8 @@
       stack[x_100_save] = 0;
       stack[x_100_save] = x_1061;
       int x_1062[10] = stack;
-      int tint_symbol_32[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-      stack = tint_symbol_32;
+      int tint_symbol_29[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+      stack = tint_symbol_29;
       stack = x_1062;
       vec2 x_584 = vec2(x_569.z, x_569.y);
       vec3 x_585 = vec3(x_580.y, x_577.x, x_577.x);
@@ -651,8 +652,8 @@
       h_1 = x_1070;
       top = x_133;
       int x_1071[10] = stack;
-      int tint_symbol_33[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-      stack = tint_symbol_33;
+      int tint_symbol_30[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+      stack = tint_symbol_30;
       stack = x_1071;
       int x_134 = p;
       vec2 x_590 = vec2(x_576.x, x_573.y);
@@ -677,9 +678,9 @@
     stack[x_96_save] = x_1076;
     vec2 x_592 = vec2(vec3(1.0f, 2.0f, 3.0f).x, vec3(1.0f, 2.0f, 3.0f).y);
     QuicksortObject x_1077 = obj;
-    int tint_symbol_34[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-    QuicksortObject tint_symbol_35 = QuicksortObject(tint_symbol_34);
-    obj = tint_symbol_35;
+    int tint_symbol_31[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+    QuicksortObject tint_symbol_32 = QuicksortObject(tint_symbol_31);
+    obj = tint_symbol_32;
     obj = x_1077;
     int x_137 = p;
     int x_1078 = stack[x_114_save];
@@ -744,8 +745,8 @@
       vec2 x_601 = vec2(x_563.x, x_563.y);
       stack[x_147_save] = int((1u + uint(x_145)));
       int x_1093[10] = stack;
-      int tint_symbol_36[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-      stack = tint_symbol_36;
+      int tint_symbol_33[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+      stack = tint_symbol_33;
       stack = x_1093;
       int x_148 = top;
       int x_1094 = stack[x_114_save];
@@ -753,8 +754,8 @@
       stack[x_114_save] = x_1094;
       vec2 x_602 = vec2(x_565.y, x_599.y);
       int x_1095[10] = stack;
-      int tint_symbol_37[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-      stack = tint_symbol_37;
+      int tint_symbol_34[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+      stack = tint_symbol_34;
       stack = x_1095;
       int x_149 = (x_148 + int(1u));
       int x_1096 = stack[x_147_save];
@@ -789,9 +790,9 @@
       l_1 = x_1103;
       vec2 x_604 = vec2(x_563.z, x_564.x);
       QuicksortObject x_1104 = obj;
-      int tint_symbol_38[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-      QuicksortObject tint_symbol_39 = QuicksortObject(tint_symbol_38);
-      obj = tint_symbol_39;
+      int tint_symbol_35[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+      QuicksortObject tint_symbol_36 = QuicksortObject(tint_symbol_35);
+      obj = tint_symbol_36;
       obj = x_1104;
     }
   }
@@ -810,15 +811,15 @@
   uv = x_717;
   i_2 = 0;
   QuicksortObject x_721 = obj;
-  int tint_symbol_40[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-  QuicksortObject tint_symbol_41 = QuicksortObject(tint_symbol_40);
-  obj = tint_symbol_41;
+  int tint_symbol_37[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+  QuicksortObject tint_symbol_38 = QuicksortObject(tint_symbol_37);
+  obj = tint_symbol_38;
   obj = x_721;
   if (true) {
     QuicksortObject x_722 = obj;
-    int tint_symbol_42[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-    QuicksortObject tint_symbol_43 = QuicksortObject(tint_symbol_42);
-    obj = tint_symbol_43;
+    int tint_symbol_39[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+    QuicksortObject tint_symbol_40 = QuicksortObject(tint_symbol_39);
+    obj = tint_symbol_40;
     obj = x_722;
     vec2 x_431 = vec2(vec3(1.0f, 2.0f, 3.0f).x, vec3(1.0f, 2.0f, 3.0f).x);
     int x_158 = i_2;
@@ -830,15 +831,15 @@
     color = x_725;
     vec2 x_432 = vec2(x_431.y, x_431.y);
     QuicksortObject x_726 = obj;
-    int tint_symbol_44[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-    QuicksortObject tint_symbol_45 = QuicksortObject(tint_symbol_44);
-    obj = tint_symbol_45;
+    int tint_symbol_41[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+    QuicksortObject tint_symbol_42 = QuicksortObject(tint_symbol_41);
+    obj = tint_symbol_42;
     obj = x_726;
   }
   QuicksortObject x_756 = obj;
-  int tint_symbol_46[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-  QuicksortObject tint_symbol_47 = QuicksortObject(tint_symbol_46);
-  obj = tint_symbol_47;
+  int tint_symbol_43[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+  QuicksortObject tint_symbol_44 = QuicksortObject(tint_symbol_43);
+  obj = tint_symbol_44;
   obj = x_756;
   vec2 x_446 = vec2(vec2(0.0f, 0.0f).x, vec2(0.0f, 0.0f).x);
   int x_757 = i_2;
@@ -846,9 +847,9 @@
   i_2 = x_757;
   quicksort_();
   QuicksortObject x_758 = obj;
-  int tint_symbol_48[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-  QuicksortObject tint_symbol_49 = QuicksortObject(tint_symbol_48);
-  obj = tint_symbol_49;
+  int tint_symbol_45[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+  QuicksortObject tint_symbol_46 = QuicksortObject(tint_symbol_45);
+  obj = tint_symbol_46;
   obj = x_758;
   vec4 x_184 = tint_symbol;
   vec2 x_759 = uv;
@@ -861,18 +862,18 @@
   vec2 x_185 = vec2(x_184.x, x_184.y);
   vec3 x_448 = vec3(x_185.y, x_446.y, x_446.y);
   QuicksortObject x_761 = obj;
-  int tint_symbol_50[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-  QuicksortObject tint_symbol_51 = QuicksortObject(tint_symbol_50);
-  obj = tint_symbol_51;
+  int tint_symbol_47[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+  QuicksortObject tint_symbol_48 = QuicksortObject(tint_symbol_47);
+  obj = tint_symbol_48;
   obj = x_761;
   vec2 x_762 = uv;
   uv = vec2(0.0f, 0.0f);
   uv = x_762;
   vec2 x_191 = x_188.resolution;
   QuicksortObject x_763 = obj;
-  int tint_symbol_52[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-  QuicksortObject tint_symbol_53 = QuicksortObject(tint_symbol_52);
-  obj = tint_symbol_53;
+  int tint_symbol_49[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+  QuicksortObject tint_symbol_50 = QuicksortObject(tint_symbol_49);
+  obj = tint_symbol_50;
   obj = x_763;
   vec3 x_449 = vec3(x_184.y, vec3(1.0f, 2.0f, 3.0f).z, x_184.w);
   vec3 x_764 = color;
@@ -880,9 +881,9 @@
   color = x_764;
   vec2 x_192 = (x_185 / x_191);
   QuicksortObject x_765 = obj;
-  int tint_symbol_54[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-  QuicksortObject tint_symbol_55 = QuicksortObject(tint_symbol_54);
-  obj = tint_symbol_55;
+  int tint_symbol_51[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+  QuicksortObject tint_symbol_52 = QuicksortObject(tint_symbol_51);
+  obj = tint_symbol_52;
   obj = x_765;
   vec2 x_450 = vec2(x_447.x, x_185.y);
   vec3 x_766 = color;
@@ -898,18 +899,18 @@
   color = x_768;
   vec3 x_451 = vec3(x_185.x, x_185.y, x_446.y);
   QuicksortObject x_769 = obj;
-  int tint_symbol_56[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-  QuicksortObject tint_symbol_57 = QuicksortObject(tint_symbol_56);
-  obj = tint_symbol_57;
+  int tint_symbol_53[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+  QuicksortObject tint_symbol_54 = QuicksortObject(tint_symbol_53);
+  obj = tint_symbol_54;
   obj = x_769;
   int x_770 = obj.numbers[0u];
   obj.numbers[0u] = 0;
   obj.numbers[0u] = x_770;
   int x_201 = obj.numbers[0u];
   QuicksortObject x_771 = obj;
-  int tint_symbol_58[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-  QuicksortObject tint_symbol_59 = QuicksortObject(tint_symbol_58);
-  obj = tint_symbol_59;
+  int tint_symbol_55[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+  QuicksortObject tint_symbol_56 = QuicksortObject(tint_symbol_55);
+  obj = tint_symbol_56;
   obj = x_771;
   int x_772 = obj.numbers[0u];
   obj.numbers[0u] = 0;
@@ -923,9 +924,9 @@
   i_2 = 0;
   i_2 = x_774;
   QuicksortObject x_775 = obj;
-  int tint_symbol_60[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-  QuicksortObject tint_symbol_61 = QuicksortObject(tint_symbol_60);
-  obj = tint_symbol_61;
+  int tint_symbol_57[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+  QuicksortObject tint_symbol_58 = QuicksortObject(tint_symbol_57);
+  obj = tint_symbol_58;
   obj = x_775;
   vec3 x_453 = vec3(x_451.x, x_450.x, x_450.y);
   color.x = (x_206 + float(x_201));
@@ -942,9 +943,9 @@
   uv.x = 0.0f;
   uv.x = x_778;
   QuicksortObject x_779 = obj;
-  int tint_symbol_62[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-  QuicksortObject tint_symbol_63 = QuicksortObject(tint_symbol_62);
-  obj = tint_symbol_63;
+  int tint_symbol_59[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+  QuicksortObject tint_symbol_60 = QuicksortObject(tint_symbol_59);
+  obj = tint_symbol_60;
   obj = x_779;
   if ((x_210 > 0.25f)) {
     int x_780 = i_2;
@@ -959,18 +960,18 @@
     uv.x = x_782;
     int x_216 = obj.numbers[1];
     QuicksortObject x_783 = obj;
-    int tint_symbol_64[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-    QuicksortObject tint_symbol_65 = QuicksortObject(tint_symbol_64);
-    obj = tint_symbol_65;
+    int tint_symbol_61[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+    QuicksortObject tint_symbol_62 = QuicksortObject(tint_symbol_61);
+    obj = tint_symbol_62;
     obj = x_783;
     vec2 x_457 = vec2(x_454.x, x_454.x);
     vec2 x_784 = uv;
     uv = vec2(0.0f, 0.0f);
     uv = x_784;
     QuicksortObject x_785 = obj;
-    int tint_symbol_66[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-    QuicksortObject tint_symbol_67 = QuicksortObject(tint_symbol_66);
-    obj = tint_symbol_67;
+    int tint_symbol_63[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+    QuicksortObject tint_symbol_64 = QuicksortObject(tint_symbol_63);
+    obj = tint_symbol_64;
     obj = x_785;
     vec2 x_458 = vec2(vec3(1.0f, 2.0f, 3.0f).z, vec2(0.0f, 0.0f).y);
     int x_786 = i_2;
@@ -1088,9 +1089,9 @@
     color.x = 0.0f;
     color.x = x_816;
     QuicksortObject x_817 = obj;
-    int tint_symbol_68[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-    QuicksortObject tint_symbol_69 = QuicksortObject(tint_symbol_68);
-    obj = tint_symbol_69;
+    int tint_symbol_65[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+    QuicksortObject tint_symbol_66 = QuicksortObject(tint_symbol_65);
+    obj = tint_symbol_66;
     obj = x_817;
     vec3 x_468 = vec3(x_467.x, x_467.x, x_467.x);
     float x_818 = uv[0];
@@ -1199,9 +1200,9 @@
     uv[0] = x_844;
     vec3 x_482 = vec3(x_455.x, x_475.y, x_455.y);
     QuicksortObject x_845 = obj;
-    int tint_symbol_70[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-    QuicksortObject tint_symbol_71 = QuicksortObject(tint_symbol_70);
-    obj = tint_symbol_71;
+    int tint_symbol_67[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+    QuicksortObject tint_symbol_68 = QuicksortObject(tint_symbol_67);
+    obj = tint_symbol_68;
     obj = x_845;
     float x_846 = uv.y;
     uv.y = 0.0f;
@@ -1272,9 +1273,9 @@
     obj.numbers[6u] = x_863;
     vec2 x_490 = vec2(x_480.z, x_480.z);
     QuicksortObject x_864 = obj;
-    int tint_symbol_72[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-    QuicksortObject tint_symbol_73 = QuicksortObject(tint_symbol_72);
-    obj = tint_symbol_73;
+    int tint_symbol_69[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+    QuicksortObject tint_symbol_70 = QuicksortObject(tint_symbol_69);
+    obj = tint_symbol_70;
     obj = x_864;
     color.y = (float(x_280) + x_283);
     float x_865 = color.x;
@@ -1291,9 +1292,9 @@
   color.x = x_867;
   float x_287 = uv.y;
   QuicksortObject x_868 = obj;
-  int tint_symbol_74[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-  QuicksortObject tint_symbol_75 = QuicksortObject(tint_symbol_74);
-  obj = tint_symbol_75;
+  int tint_symbol_71[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+  QuicksortObject tint_symbol_72 = QuicksortObject(tint_symbol_71);
+  obj = tint_symbol_72;
   obj = x_868;
   vec2 x_493 = vec2(x_475.x, x_475.y);
   float x_869 = uv[0];
@@ -1453,9 +1454,9 @@
     uv.x = 0.0f;
     uv.x = x_910;
     QuicksortObject x_911 = obj;
-    int tint_symbol_76[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-    QuicksortObject tint_symbol_77 = QuicksortObject(tint_symbol_76);
-    obj = tint_symbol_77;
+    int tint_symbol_73[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+    QuicksortObject tint_symbol_74 = QuicksortObject(tint_symbol_73);
+    obj = tint_symbol_74;
     obj = x_911;
     vec3 x_513 = vec3(x_505.z, x_505.x, x_448.x);
     int x_912 = obj.numbers[8];
@@ -1507,14 +1508,14 @@
   uv.x = 0.0f;
   uv.x = x_923;
   QuicksortObject x_924 = obj;
-  int tint_symbol_78[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-  QuicksortObject tint_symbol_79 = QuicksortObject(tint_symbol_78);
-  obj = tint_symbol_79;
+  int tint_symbol_75[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+  QuicksortObject tint_symbol_76 = QuicksortObject(tint_symbol_75);
+  obj = tint_symbol_76;
   obj = x_924;
   QuicksortObject x_925 = obj;
-  int tint_symbol_80[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-  QuicksortObject tint_symbol_81 = QuicksortObject(tint_symbol_80);
-  obj = tint_symbol_81;
+  int tint_symbol_77[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+  QuicksortObject tint_symbol_78 = QuicksortObject(tint_symbol_77);
+  obj = tint_symbol_78;
   obj = x_925;
   float x_926 = color.y;
   color.y = 0.0f;
@@ -1533,9 +1534,9 @@
   uv.x = x_929;
   x_GLF_color = x_330;
   QuicksortObject x_930 = obj;
-  int tint_symbol_82[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-  QuicksortObject tint_symbol_83 = QuicksortObject(tint_symbol_82);
-  obj = tint_symbol_83;
+  int tint_symbol_79[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+  QuicksortObject tint_symbol_80 = QuicksortObject(tint_symbol_79);
+  obj = tint_symbol_80;
   obj = x_930;
   vec3 x_522 = vec3(x_330.w, x_330.y, x_493.x);
   float x_931 = color.x;
@@ -1548,35 +1549,15 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_84 = main_out(x_GLF_color);
-  return tint_symbol_84;
+  main_out tint_symbol_81 = main_out(x_GLF_color);
+  return tint_symbol_81;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
diff --git a/test/bug/tint/757.wgsl.expected.glsl b/test/bug/tint/757.wgsl.expected.glsl
index ffa7615..fab0f57 100644
--- a/test/bug/tint/757.wgsl.expected.glsl
+++ b/test/bug/tint/757.wgsl.expected.glsl
@@ -8,12 +8,8 @@
 layout(binding = 3) buffer Result_1 {
   float values[];
 } result;
-struct tint_symbol_2 {
-  uvec3 GlobalInvocationID;
-};
-
 uniform highp sampler2DArray myTexture_1;
-void tint_symbol_inner(uvec3 GlobalInvocationID) {
+void tint_symbol(uvec3 GlobalInvocationID) {
   uint flatIndex = ((((2u * 2u) * GlobalInvocationID.z) + (2u * GlobalInvocationID.y)) + GlobalInvocationID.x);
   flatIndex = (flatIndex * 1u);
   vec4 texel = texelFetch(myTexture_1, ivec3(ivec2(GlobalInvocationID.xy), 0), 0);
@@ -25,15 +21,7 @@
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.GlobalInvocationID);
+void main() {
+  tint_symbol(gl_GlobalInvocationID);
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.GlobalInvocationID = gl_GlobalInvocationID;
-  tint_symbol(inputs);
-}
-
diff --git a/test/bug/tint/764.wgsl.expected.glsl b/test/bug/tint/764.wgsl.expected.glsl
index b2546df..521fb36 100644
--- a/test/bug/tint/764.wgsl.expected.glsl
+++ b/test/bug/tint/764.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   mat4 m = mat4(vec4(1.0f, 1.0f, 1.0f, 1.0f), vec4(1.0f, 1.0f, 1.0f, 1.0f), vec4(1.0f, 1.0f, 1.0f, 1.0f), vec4(1.0f, 1.0f, 1.0f, 1.0f));
   vec4 v1 = m[0];
diff --git a/test/bug/tint/782.wgsl.expected.glsl b/test/bug/tint/782.wgsl.expected.glsl
index 0b8c375..a4f1e64 100644
--- a/test/bug/tint/782.wgsl.expected.glsl
+++ b/test/bug/tint/782.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void foo() {
   int explicit[2] = int[2](0, 0);
   int implict[2] = int[2](0, 0);
diff --git a/test/bug/tint/824.wgsl.expected.glsl b/test/bug/tint/824.wgsl.expected.glsl
index 43a5596..e53dfa3 100644
--- a/test/bug/tint/824.wgsl.expected.glsl
+++ b/test/bug/tint/824.wgsl.expected.glsl
@@ -1,22 +1,13 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 color_1;
 struct Output {
   vec4 Position;
   vec4 color;
 };
 
-struct tint_symbol_3 {
-  uint VertexIndex;
-  uint InstanceIndex;
-};
-
-struct tint_symbol_4 {
-  vec4 color;
-  vec4 Position;
-};
-
-Output tint_symbol_inner(uint VertexIndex, uint InstanceIndex) {
+Output tint_symbol(uint VertexIndex, uint InstanceIndex) {
   vec2 zv[4] = vec2[4](vec2(0.200000003f, 0.200000003f), vec2(0.300000012f, 0.300000012f), vec2(-0.100000001f, -0.100000001f), vec2(1.100000024f, 1.100000024f));
   float z = zv[InstanceIndex].x;
   Output tint_symbol_1 = Output(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
@@ -26,27 +17,11 @@
   return tint_symbol_1;
 }
 
-tint_symbol_4 tint_symbol(tint_symbol_3 tint_symbol_2) {
-  Output inner_result = tint_symbol_inner(tint_symbol_2.VertexIndex, tint_symbol_2.InstanceIndex);
-  tint_symbol_4 wrapper_result = tint_symbol_4(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.Position = inner_result.Position;
-  wrapper_result.color = inner_result.color;
-  return wrapper_result;
-}
-
-
-layout(location = 0) out vec4 color;
-
-
 void main() {
-  tint_symbol_3 inputs;
-  inputs.VertexIndex = uint(gl_VertexID);
-  inputs.InstanceIndex = uint(gl_InstanceID);
-  tint_symbol_4 outputs;
-  outputs = tint_symbol(inputs);
-  color = outputs.color;
-  gl_Position = outputs.Position;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  Output inner_result = tint_symbol(uint(gl_VertexID), uint(gl_InstanceID));
+  gl_Position = inner_result.Position;
+  color_1 = inner_result.color;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
diff --git a/test/bug/tint/825.wgsl.expected.glsl b/test/bug/tint/825.wgsl.expected.glsl
index e1d52ca..a3f1fac 100644
--- a/test/bug/tint/825.wgsl.expected.glsl
+++ b/test/bug/tint/825.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   int i = 0;
   int j = 0;
diff --git a/test/bug/tint/827.wgsl.expected.glsl b/test/bug/tint/827.wgsl.expected.glsl
index 72c1e8d..9933ba5 100644
--- a/test/bug/tint/827.wgsl.expected.glsl
+++ b/test/bug/tint/827.wgsl.expected.glsl
@@ -5,25 +5,13 @@
 layout(binding = 1) buffer Result_1 {
   float values[];
 } result;
-struct tint_symbol_2 {
-  uvec3 GlobalInvocationId;
-};
-
 uniform highp sampler2D tex_1;
-void tint_symbol_inner(uvec3 GlobalInvocationId) {
+void tint_symbol(uvec3 GlobalInvocationId) {
   result.values[((GlobalInvocationId.y * width) + GlobalInvocationId.x)] = texelFetch(tex_1, ivec2(int(GlobalInvocationId.x), int(GlobalInvocationId.y)), 0).x;
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.GlobalInvocationId);
+void main() {
+  tint_symbol(gl_GlobalInvocationID);
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.GlobalInvocationId = gl_GlobalInvocationID;
-  tint_symbol(inputs);
-}
-
diff --git a/test/bug/tint/870.spvasm.expected.glsl b/test/bug/tint/870.spvasm.expected.glsl
index b6579fa..3f0ad90 100644
--- a/test/bug/tint/870.spvasm.expected.glsl
+++ b/test/bug/tint/870.spvasm.expected.glsl
@@ -29,10 +29,9 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/bug/tint/913.wgsl.expected.glsl b/test/bug/tint/913.wgsl.expected.glsl
index 5535fd9..3d484af 100644
--- a/test/bug/tint/913.wgsl.expected.glsl
+++ b/test/bug/tint/913.wgsl.expected.glsl
@@ -24,13 +24,9 @@
   return (abs((value - expect)) < 0.001f);
 }
 
-struct tint_symbol_3 {
-  uvec3 GlobalInvocationID;
-};
-
 uniform highp sampler2D src_1;
 uniform highp sampler2D dst_1;
-void tint_symbol_1_inner(uvec3 GlobalInvocationID) {
+void tint_symbol_1(uvec3 GlobalInvocationID) {
   ivec2 srcSize = textureSize(src_1, 0);
   ivec2 dstSize = textureSize(dst_1, 0);
   uvec2 dstTexCoord = uvec2(GlobalInvocationID.xy);
@@ -100,15 +96,7 @@
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void tint_symbol_1(tint_symbol_3 tint_symbol_2) {
-  tint_symbol_1_inner(tint_symbol_2.GlobalInvocationID);
+void main() {
+  tint_symbol_1(gl_GlobalInvocationID);
   return;
 }
-
-
-void main() {
-  tint_symbol_3 inputs;
-  inputs.GlobalInvocationID = gl_GlobalInvocationID;
-  tint_symbol_1(inputs);
-}
-
diff --git a/test/bug/tint/914.wgsl.expected.glsl b/test/bug/tint/914.wgsl.expected.glsl
index 2c7faa5..e0de067 100644
--- a/test/bug/tint/914.wgsl.expected.glsl
+++ b/test/bug/tint/914.wgsl.expected.glsl
@@ -62,13 +62,7 @@
 const uint TileInner = 64u;
 shared float mm_Asub[64][64];
 shared float mm_Bsub[64][64];
-struct tint_symbol_2 {
-  uvec3 local_id;
-  uint local_invocation_index;
-  uvec3 global_id;
-};
-
-void tint_symbol_inner(uvec3 local_id, uvec3 global_id, uint local_invocation_index) {
+void tint_symbol(uvec3 local_id, uvec3 global_id, uint local_invocation_index) {
   {
     for(uint idx = local_invocation_index; (idx < 4096u); idx = (idx + 256u)) {
       uint i = (idx / 64u);
@@ -156,19 +150,7 @@
 }
 
 layout(local_size_x = 16, local_size_y = 16, local_size_z = 1) in;
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.local_id, tint_symbol_1.global_id, tint_symbol_1.local_invocation_index);
+void main() {
+  tint_symbol(gl_LocalInvocationID, gl_GlobalInvocationID, gl_LocalInvocationIndex);
   return;
 }
-
-
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.local_id = gl_LocalInvocationID;
-  inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
-  inputs.global_id = gl_GlobalInvocationID;
-  tint_symbol(inputs);
-}
-
diff --git a/test/bug/tint/922.wgsl.expected.glsl b/test/bug/tint/922.wgsl.expected.glsl
index da0e4c7..bacfe36 100644
--- a/test/bug/tint/922.wgsl.expected.glsl
+++ b/test/bug/tint/922.wgsl.expected.glsl
@@ -1,8 +1,13 @@
-SKIP: FAILED
-
 #version 310 es
 precision mediump float;
 
+layout(location = 0) in vec3 a_Position_1;
+layout(location = 1) in vec2 a_UV_1;
+layout(location = 2) in vec4 a_Color_1;
+layout(location = 3) in vec3 a_Normal_1;
+layout(location = 4) in float a_PosMtxIdx_1;
+layout(location = 0) out vec4 v_Color_1;
+layout(location = 1) out vec2 v_TexCoord_1;
 struct Mat4x4_ {
   vec4 mx;
   vec4 my;
@@ -137,67 +142,23 @@
   }
 }
 
-struct tint_symbol_3 {
-  vec3 a_Position;
-  vec2 a_UV;
-  vec4 a_Color;
-  vec3 a_Normal;
-  float a_PosMtxIdx;
-};
-
-struct tint_symbol_4 {
-  vec4 v_Color;
-  vec2 v_TexCoord;
-  vec4 member;
-};
-
-VertexOutput tint_symbol_1_inner(vec3 a_Position, vec2 a_UV, vec4 a_Color, vec3 a_Normal, float a_PosMtxIdx) {
+VertexOutput tint_symbol_1(vec3 a_Position, vec2 a_UV, vec4 a_Color, vec3 a_Normal, float a_PosMtxIdx) {
   a_Position1 = a_Position;
   a_UV1 = a_UV;
   a_Color1 = a_Color;
   a_Normal1 = a_Normal;
   a_PosMtxIdx1 = a_PosMtxIdx;
   main1();
-  VertexOutput tint_symbol_5 = VertexOutput(v_Color, v_TexCoord, tint_symbol);
-  return tint_symbol_5;
+  VertexOutput tint_symbol_2 = VertexOutput(v_Color, v_TexCoord, tint_symbol);
+  return tint_symbol_2;
 }
 
-tint_symbol_4 tint_symbol_1(tint_symbol_3 tint_symbol_2) {
-  VertexOutput inner_result = tint_symbol_1_inner(tint_symbol_2.a_Position, tint_symbol_2.a_UV, tint_symbol_2.a_Color, tint_symbol_2.a_Normal, tint_symbol_2.a_PosMtxIdx);
-  tint_symbol_4 wrapper_result = tint_symbol_4(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec2(0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.v_Color = inner_result.v_Color;
-  wrapper_result.v_TexCoord = inner_result.v_TexCoord;
-  wrapper_result.member = inner_result.member;
-  return wrapper_result;
-}
-layout(location = 0) in vec3 a_Position;
-layout(location = 1) in vec2 a_UV;
-layout(location = 2) in vec4 a_Color;
-layout(location = 3) in vec3 a_Normal;
-layout(location = 4) in float a_PosMtxIdx;
-layout(location = 0) out vec4 v_Color;
-layout(location = 1) out vec2 v_TexCoord;
-
-
 void main() {
-  tint_symbol_3 inputs;
-  inputs.a_Position = a_Position;
-  inputs.a_UV = a_UV;
-  inputs.a_Color = a_Color;
-  inputs.a_Normal = a_Normal;
-  inputs.a_PosMtxIdx = a_PosMtxIdx;
-  tint_symbol_4 outputs;
-  outputs = tint_symbol_1(inputs);
-  v_Color = outputs.v_Color;
-  v_TexCoord = outputs.v_TexCoord;
-  gl_Position = outputs.member;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  VertexOutput inner_result = tint_symbol_1(a_Position_1, a_UV_1, a_Color_1, a_Normal_1, a_PosMtxIdx_1);
+  v_Color_1 = inner_result.v_Color;
+  v_TexCoord_1 = inner_result.v_TexCoord;
+  gl_Position = inner_result.member;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
-Error parsing GLSL shader:
-ERROR: 0:176: 'v_Color' : redefinition 
-ERROR: 1 compilation errors.  No code generated.
-
-
-
diff --git a/test/bug/tint/926.wgsl.expected.glsl b/test/bug/tint/926.wgsl.expected.glsl
index 525f25f..15a518c 100644
--- a/test/bug/tint/926.wgsl.expected.glsl
+++ b/test/bug/tint/926.wgsl.expected.glsl
@@ -9,24 +9,12 @@
   uint vertexCount;
 } drawOut;
 uint cubeVerts = 0u;
-struct tint_symbol_1 {
-  uvec3 global_id;
-};
-
-void computeMain_inner(uvec3 global_id) {
+void computeMain(uvec3 global_id) {
   uint firstVertex = atomicAdd(drawOut.vertexCount, cubeVerts);
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void computeMain(tint_symbol_1 tint_symbol) {
-  computeMain_inner(tint_symbol.global_id);
+void main() {
+  computeMain(gl_GlobalInvocationID);
   return;
 }
-
-
-void main() {
-  tint_symbol_1 inputs;
-  inputs.global_id = gl_GlobalInvocationID;
-  computeMain(inputs);
-}
-
diff --git a/test/bug/tint/942.wgsl.expected.glsl b/test/bug/tint/942.wgsl.expected.glsl
index e665621..8f85836 100644
--- a/test/bug/tint/942.wgsl.expected.glsl
+++ b/test/bug/tint/942.wgsl.expected.glsl
@@ -20,17 +20,11 @@
 } flip;
 
 shared vec3 tile[4][256];
-struct tint_symbol_2 {
-  uvec3 LocalInvocationID;
-  uint local_invocation_index;
-  uvec3 WorkGroupID;
-};
-
 uniform highp sampler2D inputTex_1;
 uniform highp sampler2D inputTex_samp;
 layout(rgba8) uniform highp writeonly image2D outputTex_1;
 
-void tint_symbol_inner(uvec3 WorkGroupID, uvec3 LocalInvocationID, uint local_invocation_index) {
+void tint_symbol(uvec3 WorkGroupID, uvec3 LocalInvocationID, uint local_invocation_index) {
   {
     for(uint idx = local_invocation_index; (idx < 1024u); idx = (idx + 64u)) {
       uint i_1 = (idx / 256u);
@@ -90,19 +84,7 @@
 }
 
 layout(local_size_x = 64, local_size_y = 1, local_size_z = 1) in;
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.WorkGroupID, tint_symbol_1.LocalInvocationID, tint_symbol_1.local_invocation_index);
+void main() {
+  tint_symbol(gl_WorkGroupID, gl_LocalInvocationID, gl_LocalInvocationIndex);
   return;
 }
-
-
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.LocalInvocationID = gl_LocalInvocationID;
-  inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
-  inputs.WorkGroupID = gl_WorkGroupID;
-  tint_symbol(inputs);
-}
-
diff --git a/test/bug/tint/943.spvasm.expected.glsl b/test/bug/tint/943.spvasm.expected.glsl
index a834d1f..f88926b 100644
--- a/test/bug/tint/943.spvasm.expected.glsl
+++ b/test/bug/tint/943.spvasm.expected.glsl
@@ -374,13 +374,7 @@
   return;
 }
 
-struct tint_symbol_6 {
-  uvec3 tint_symbol_3;
-  uint local_invocation_index;
-  uvec3 tint_symbol_4;
-};
-
-void tint_symbol_2_inner(uvec3 tint_symbol_3, uvec3 tint_symbol_4, uint local_invocation_index) {
+void tint_symbol_2(uvec3 tint_symbol_3, uvec3 tint_symbol_4, uint local_invocation_index) {
   {
     uint i_1 = local_invocation_index;
     uint i_2 = (local_invocation_index % 1u);
@@ -400,22 +394,10 @@
 }
 
 layout(local_size_x = 1, local_size_y = 64, local_size_z = 1) in;
-void tint_symbol_2(tint_symbol_6 tint_symbol_5) {
-  tint_symbol_2_inner(tint_symbol_5.tint_symbol_3, tint_symbol_5.tint_symbol_4, tint_symbol_5.local_invocation_index);
+void main() {
+  tint_symbol_2(gl_LocalInvocationID, gl_GlobalInvocationID, gl_LocalInvocationIndex);
   return;
 }
-
-
-
-
-void main() {
-  tint_symbol_6 inputs;
-  inputs.tint_symbol_3 = gl_LocalInvocationID;
-  inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
-  inputs.tint_symbol_4 = gl_GlobalInvocationID;
-  tint_symbol_2(inputs);
-}
-
 Error parsing GLSL shader:
 ERROR: 0:13: '' : array size required 
 ERROR: 0:14: '' : compilation terminated 
diff --git a/test/bug/tint/948.wgsl.expected.glsl b/test/bug/tint/948.wgsl.expected.glsl
index 759dcf5..0d2b2ce 100644
--- a/test/bug/tint/948.wgsl.expected.glsl
+++ b/test/bug/tint/948.wgsl.expected.glsl
@@ -3,6 +3,13 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 2) in vec2 tUV_param_1;
+layout(location = 5) in vec2 tileID_1_param_1;
+layout(location = 4) in vec2 levelUnits_param_1;
+layout(location = 3) in vec2 stageUnits_1_param_1;
+layout(location = 0) in vec3 vPosition_param_1;
+layout(location = 1) in vec2 vUV_param_1;
+layout(location = 0) out vec4 glFragColor_1_1;
 struct LeftOver {
   float time;
   uint padding;
@@ -175,20 +182,7 @@
   vec4 glFragColor_1;
 };
 
-struct tint_symbol_2 {
-  vec3 vPosition_param;
-  vec2 vUV_param;
-  vec2 tUV_param;
-  vec2 stageUnits_1_param;
-  vec2 levelUnits_param;
-  vec2 tileID_1_param;
-};
-
-struct tint_symbol_3 {
-  vec4 glFragColor_1;
-};
-
-main_out tint_symbol_inner(vec2 tUV_param, vec2 tileID_1_param, vec2 levelUnits_param, vec2 stageUnits_1_param, vec3 vPosition_param, vec2 vUV_param) {
+main_out tint_symbol(vec2 tUV_param, vec2 tileID_1_param, vec2 levelUnits_param, vec2 stageUnits_1_param, vec3 vPosition_param, vec2 vUV_param) {
   tUV = tUV_param;
   tileID_1 = tileID_1_param;
   levelUnits = levelUnits_param;
@@ -196,41 +190,19 @@
   vPosition = vPosition_param;
   vUV = vUV_param;
   main_1();
-  main_out tint_symbol_4 = main_out(glFragColor);
-  return tint_symbol_4;
+  main_out tint_symbol_1 = main_out(glFragColor);
+  return tint_symbol_1;
 }
 
-tint_symbol_3 tint_symbol(tint_symbol_2 tint_symbol_1) {
-  main_out inner_result = tint_symbol_inner(tint_symbol_1.tUV_param, tint_symbol_1.tileID_1_param, tint_symbol_1.levelUnits_param, tint_symbol_1.stageUnits_1_param, tint_symbol_1.vPosition_param, tint_symbol_1.vUV_param);
-  tint_symbol_3 wrapper_result = tint_symbol_3(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.glFragColor_1 = inner_result.glFragColor_1;
-  return wrapper_result;
-}
-layout(location = 0) in vec3 vPosition_param;
-layout(location = 1) in vec2 vUV_param;
-layout(location = 2) in vec2 tUV_param;
-layout(location = 3) in vec2 stageUnits_1_param;
-layout(location = 4) in vec2 levelUnits_param;
-layout(location = 5) in vec2 tileID_1_param;
-layout(location = 0) out vec4 glFragColor_1;
-
 void main() {
-  tint_symbol_2 inputs;
-  inputs.vPosition_param = vPosition_param;
-  inputs.vUV_param = vUV_param;
-  inputs.tUV_param = tUV_param;
-  inputs.stageUnits_1_param = stageUnits_1_param;
-  inputs.levelUnits_param = levelUnits_param;
-  inputs.tileID_1_param = tileID_1_param;
-  tint_symbol_3 outputs;
-  outputs = tint_symbol(inputs);
-  glFragColor_1 = outputs.glFragColor_1;
+  main_out inner_result = tint_symbol(tUV_param_1, tileID_1_param_1, levelUnits_param_1, stageUnits_1_param_1, vPosition_param_1, vUV_param_1);
+  glFragColor_1_1 = inner_result.glFragColor_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:73: 'frac' : no matching overloaded function found 
-ERROR: 0:73: 'assign' :  cannot convert from ' const float' to ' temp mediump 2-component vector of float'
-ERROR: 0:73: '' : compilation terminated 
+ERROR: 0:80: 'frac' : no matching overloaded function found 
+ERROR: 0:80: 'assign' :  cannot convert from ' const float' to ' temp mediump 2-component vector of float'
+ERROR: 0:80: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/bug/tint/949.wgsl.expected.glsl b/test/bug/tint/949.wgsl.expected.glsl
index a77020e..f1f268f 100644
--- a/test/bug/tint/949.wgsl.expected.glsl
+++ b/test/bug/tint/949.wgsl.expected.glsl
@@ -3,6 +3,11 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 1) in vec2 vMainuv_param_1;
+layout(location = 0) in vec4 v_output1_param_1;
+layout(location = 3) in vec2 v_uv_param_1;
+layout(location = 2) in vec4 v_output2_param_1;
+layout(location = 0) out vec4 glFragColor_1_1;
 struct lightingInfo {
   vec3 diffuse;
   vec3 specular;
@@ -353,58 +358,26 @@
   vec4 glFragColor_1;
 };
 
-struct tint_symbol_4 {
-  vec4 v_output1_param;
-  vec2 vMainuv_param;
-  vec4 v_output2_param;
-  vec2 v_uv_param;
-  bool tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 glFragColor_1;
-};
-
-main_out tint_symbol_1_inner(vec2 vMainuv_param, vec4 v_output1_param, bool tint_symbol_2, vec2 v_uv_param, vec4 v_output2_param) {
+main_out tint_symbol_1(vec2 vMainuv_param, vec4 v_output1_param, bool tint_symbol_2, vec2 v_uv_param, vec4 v_output2_param) {
   vMainuv = vMainuv_param;
   v_output1 = v_output1_param;
   tint_symbol = tint_symbol_2;
   v_uv = v_uv_param;
   v_output2 = v_output2_param;
   main_1();
-  main_out tint_symbol_6 = main_out(glFragColor);
-  return tint_symbol_6;
+  main_out tint_symbol_3 = main_out(glFragColor);
+  return tint_symbol_3;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.vMainuv_param, tint_symbol_3.v_output1_param, tint_symbol_3.tint_symbol_2, tint_symbol_3.v_uv_param, tint_symbol_3.v_output2_param);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.glFragColor_1 = inner_result.glFragColor_1;
-  return wrapper_result;
-}
-layout(location = 0) in vec4 v_output1_param;
-layout(location = 1) in vec2 vMainuv_param;
-layout(location = 2) in vec4 v_output2_param;
-layout(location = 3) in vec2 v_uv_param;
-
-layout(location = 0) out vec4 glFragColor_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.v_output1_param = v_output1_param;
-  inputs.vMainuv_param = vMainuv_param;
-  inputs.v_output2_param = v_output2_param;
-  inputs.v_uv_param = v_uv_param;
-  inputs.tint_symbol_2 = gl_FrontFacing;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  glFragColor_1 = outputs.glFragColor_1;
+  main_out inner_result = tint_symbol_1(vMainuv_param_1, v_output1_param_1, gl_FrontFacing, v_uv_param_1, v_output2_param_1);
+  glFragColor_1_1 = inner_result.glFragColor_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:72: 'ddx' : no matching overloaded function found 
-ERROR: 0:72: 'assign' :  cannot convert from ' const float' to ' temp mediump 3-component vector of float'
-ERROR: 0:72: '' : compilation terminated 
+ERROR: 0:77: 'ddx' : no matching overloaded function found 
+ERROR: 0:77: 'assign' :  cannot convert from ' const float' to ' temp mediump 3-component vector of float'
+ERROR: 0:77: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/bug/tint/951.spvasm.expected.glsl b/test/bug/tint/951.spvasm.expected.glsl
index bee1da4..1d048c0 100644
--- a/test/bug/tint/951.spvasm.expected.glsl
+++ b/test/bug/tint/951.spvasm.expected.glsl
@@ -78,28 +78,16 @@
   return;
 }
 
-struct tint_symbol_4 {
-  uvec3 tint_symbol_2;
-};
-
-void tint_symbol_1_inner(uvec3 tint_symbol_2) {
+void tint_symbol_1(uvec3 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
 }
 
 layout(local_size_x = 128, local_size_y = 1, local_size_z = 1) in;
-void tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
+void main() {
+  tint_symbol_1(gl_GlobalInvocationID);
   return;
 }
-
-
-void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_GlobalInvocationID;
-  tint_symbol_1(inputs);
-}
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : array size required 
 ERROR: 0:6: '' : compilation terminated 
diff --git a/test/bug/tint/959.wgsl.expected.glsl b/test/bug/tint/959.wgsl.expected.glsl
index 388ba36..9ac597c 100644
--- a/test/bug/tint/959.wgsl.expected.glsl
+++ b/test/bug/tint/959.wgsl.expected.glsl
@@ -62,10 +62,9 @@
 } b15;
 
 void tint_symbol() {
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/bug/tint/977.spvasm.expected.glsl b/test/bug/tint/977.spvasm.expected.glsl
index 0cfd8e3..9c8e0ab 100644
--- a/test/bug/tint/977.spvasm.expected.glsl
+++ b/test/bug/tint/977.spvasm.expected.glsl
@@ -61,28 +61,16 @@
   return;
 }
 
-struct tint_symbol_4 {
-  uvec3 tint_symbol_2;
-};
-
-void tint_symbol_1_inner(uvec3 tint_symbol_2) {
+void tint_symbol_1(uvec3 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
+void main() {
+  tint_symbol_1(gl_GlobalInvocationID);
   return;
 }
-
-
-void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_GlobalInvocationID;
-  tint_symbol_1(inputs);
-}
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : array size required 
 ERROR: 0:6: '' : compilation terminated 
diff --git a/test/bug/tint/978.wgsl.expected.glsl b/test/bug/tint/978.wgsl.expected.glsl
index e9785e7..b7bebd2 100644
--- a/test/bug/tint/978.wgsl.expected.glsl
+++ b/test/bug/tint/978.wgsl.expected.glsl
@@ -1,6 +1,8 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 2) in vec2 vUv_1;
+layout(location = 0) out vec4 color_1;
 struct FragmentInput {
   vec2 vUv;
 };
@@ -9,17 +11,9 @@
   vec4 color;
 };
 
-struct tint_symbol_3 {
-  vec2 vUv;
-};
-
-struct tint_symbol_4 {
-  vec4 color;
-};
-
 uniform highp sampler2D depthMap_texSampler;
 
-FragmentOutput tint_symbol_inner(FragmentInput fIn) {
+FragmentOutput tint_symbol(FragmentInput fIn) {
   float tint_symbol_1 = texture(depthMap_texSampler, fIn.vUv).x;
   vec3 color = vec3(tint_symbol_1, tint_symbol_1, tint_symbol_1);
   FragmentOutput fOut = FragmentOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f));
@@ -27,21 +21,9 @@
   return fOut;
 }
 
-tint_symbol_4 tint_symbol(tint_symbol_3 tint_symbol_2) {
-  FragmentInput tint_symbol_5 = FragmentInput(tint_symbol_2.vUv);
-  FragmentOutput inner_result = tint_symbol_inner(tint_symbol_5);
-  tint_symbol_4 wrapper_result = tint_symbol_4(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.color = inner_result.color;
-  return wrapper_result;
-}
-layout(location = 2) in vec2 vUv;
-layout(location = 0) out vec4 color;
-
 void main() {
-  tint_symbol_3 inputs;
-  inputs.vUv = vUv;
-  tint_symbol_4 outputs;
-  outputs = tint_symbol(inputs);
-  color = outputs.color;
+  FragmentInput tint_symbol_2 = FragmentInput(vUv_1);
+  FragmentOutput inner_result = tint_symbol(tint_symbol_2);
+  color_1 = inner_result.color;
+  return;
 }
-
diff --git a/test/bug/tint/980.wgsl.expected.glsl b/test/bug/tint/980.wgsl.expected.glsl
index 26f1552..1019176 100644
--- a/test/bug/tint/980.wgsl.expected.glsl
+++ b/test/bug/tint/980.wgsl.expected.glsl
@@ -16,24 +16,12 @@
   vec3 v;
   uint i;
 } io;
-struct tint_symbol_2 {
-  uint idx;
-};
-
-void tint_symbol_inner(uint idx) {
+void tint_symbol(uint idx) {
   io.v = Bad(io.i, io.v);
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.idx);
+void main() {
+  tint_symbol(gl_LocalInvocationIndex);
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.idx = uint(gl_LocalInvocationIndex);
-  tint_symbol(inputs);
-}
-
diff --git a/test/bug/tint/990.wgsl.expected.glsl b/test/bug/tint/990.wgsl.expected.glsl
index 8a446ee..b3ba8e0 100644
--- a/test/bug/tint/990.wgsl.expected.glsl
+++ b/test/bug/tint/990.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   int i = 0;
   {
diff --git a/test/bug/tint/992.wgsl.expected.glsl b/test/bug/tint/992.wgsl.expected.glsl
index 19b9edf..24200d6 100644
--- a/test/bug/tint/992.wgsl.expected.glsl
+++ b/test/bug/tint/992.wgsl.expected.glsl
@@ -1,27 +1,15 @@
 #version 310 es
 precision mediump float;
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 frag_main_inner() {
+layout(location = 0) out vec4 value;
+vec4 frag_main() {
   float b = 0.0f;
   vec3 v = vec3(b);
   return vec4(v, 1.0f);
 }
 
-tint_symbol frag_main() {
-  vec4 inner_result = frag_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 value;
-
 void main() {
-  tint_symbol outputs;
-  outputs = frag_main();
-  value = outputs.value;
+  vec4 inner_result = frag_main();
+  value = inner_result;
+  return;
 }
-
diff --git a/test/bug/tint/993.wgsl.expected.glsl b/test/bug/tint/993.wgsl.expected.glsl
index 67a394a..3e60c6e 100644
--- a/test/bug/tint/993.wgsl.expected.glsl
+++ b/test/bug/tint/993.wgsl.expected.glsl
@@ -27,13 +27,12 @@
   return atomicOr(s.data[(0u + uint(constants.zero))], 0);
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   result.value = uint(runTest());
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/bug/tint/998.wgsl.expected.glsl b/test/bug/tint/998.wgsl.expected.glsl
index 62e80ae..688e74a 100644
--- a/test/bug/tint/998.wgsl.expected.glsl
+++ b/test/bug/tint/998.wgsl.expected.glsl
@@ -18,13 +18,12 @@
 };
 
 S s = S(uint[3](0u, 0u, 0u));
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   s.data[constants.zero] = 0u;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/expressions/binary/add/mat3x3-mat3x3/f32.wgsl.expected.glsl b/test/expressions/binary/add/mat3x3-mat3x3/f32.wgsl.expected.glsl
index 88b1b8f..be1f423 100644
--- a/test/expressions/binary/add/mat3x3-mat3x3/f32.wgsl.expected.glsl
+++ b/test/expressions/binary/add/mat3x3-mat3x3/f32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   mat3 a = mat3(vec3(1.0f, 2.0f, 3.0f), vec3(4.0f, 5.0f, 6.0f), vec3(7.0f, 8.0f, 9.0f));
   mat3 b = mat3(vec3(-1.0f, -2.0f, -3.0f), vec3(-4.0f, -5.0f, -6.0f), vec3(-7.0f, -8.0f, -9.0f));
   mat3 r = (a + b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/add/scalar-scalar/f32.wgsl.expected.glsl b/test/expressions/binary/add/scalar-scalar/f32.wgsl.expected.glsl
index 0b90ef1..183c599 100644
--- a/test/expressions/binary/add/scalar-scalar/f32.wgsl.expected.glsl
+++ b/test/expressions/binary/add/scalar-scalar/f32.wgsl.expected.glsl
@@ -1,13 +1,12 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   float r = (1.0f + 2.0f);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/add/scalar-scalar/i32.wgsl.expected.glsl b/test/expressions/binary/add/scalar-scalar/i32.wgsl.expected.glsl
index 5803fdc..6d7731d 100644
--- a/test/expressions/binary/add/scalar-scalar/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/add/scalar-scalar/i32.wgsl.expected.glsl
@@ -1,13 +1,12 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   int r = (1 + 2);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/add/scalar-scalar/u32.wgsl.expected.glsl b/test/expressions/binary/add/scalar-scalar/u32.wgsl.expected.glsl
index a7ec957..db4ce4d 100644
--- a/test/expressions/binary/add/scalar-scalar/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/add/scalar-scalar/u32.wgsl.expected.glsl
@@ -1,13 +1,12 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uint r = (1u + 2u);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/add/scalar-vec3/f32.wgsl.expected.glsl b/test/expressions/binary/add/scalar-vec3/f32.wgsl.expected.glsl
index e54fe43..f9982f1 100644
--- a/test/expressions/binary/add/scalar-vec3/f32.wgsl.expected.glsl
+++ b/test/expressions/binary/add/scalar-vec3/f32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   float a = 4.0f;
   vec3 b = vec3(1.0f, 2.0f, 3.0f);
   vec3 r = (a + b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/add/scalar-vec3/i32.wgsl.expected.glsl b/test/expressions/binary/add/scalar-vec3/i32.wgsl.expected.glsl
index a9808d1..f8c91ba 100644
--- a/test/expressions/binary/add/scalar-vec3/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/add/scalar-vec3/i32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   int a = 4;
   ivec3 b = ivec3(1, 2, 3);
   ivec3 r = (a + b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/add/scalar-vec3/u32.wgsl.expected.glsl b/test/expressions/binary/add/scalar-vec3/u32.wgsl.expected.glsl
index 6144b34..44535e4 100644
--- a/test/expressions/binary/add/scalar-vec3/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/add/scalar-vec3/u32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uint a = 4u;
   uvec3 b = uvec3(1u, 2u, 3u);
   uvec3 r = (a + b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/add/vec3-scalar/f32.wgsl.expected.glsl b/test/expressions/binary/add/vec3-scalar/f32.wgsl.expected.glsl
index 63461e9..d1bbc23 100644
--- a/test/expressions/binary/add/vec3-scalar/f32.wgsl.expected.glsl
+++ b/test/expressions/binary/add/vec3-scalar/f32.wgsl.expected.glsl
@@ -1,14 +1,13 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   vec3 a = vec3(1.0f, 2.0f, 3.0f);
   vec3 r = (a + 4.0f);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/add/vec3-scalar/i32.wgsl.expected.glsl b/test/expressions/binary/add/vec3-scalar/i32.wgsl.expected.glsl
index b13d477..0f6b433 100644
--- a/test/expressions/binary/add/vec3-scalar/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/add/vec3-scalar/i32.wgsl.expected.glsl
@@ -1,14 +1,13 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   ivec3 a = ivec3(1, 2, 3);
   ivec3 r = (a + 4);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/add/vec3-scalar/u32.wgsl.expected.glsl b/test/expressions/binary/add/vec3-scalar/u32.wgsl.expected.glsl
index b1d217c..408dbb9 100644
--- a/test/expressions/binary/add/vec3-scalar/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/add/vec3-scalar/u32.wgsl.expected.glsl
@@ -1,14 +1,13 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
   uvec3 r = (a + 4u);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/add/vec3-vec3/f32.wgsl.expected.glsl b/test/expressions/binary/add/vec3-vec3/f32.wgsl.expected.glsl
index 5afc728..e20d7cc 100644
--- a/test/expressions/binary/add/vec3-vec3/f32.wgsl.expected.glsl
+++ b/test/expressions/binary/add/vec3-vec3/f32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   vec3 a = vec3(1.0f, 2.0f, 3.0f);
   vec3 b = vec3(4.0f, 5.0f, 6.0f);
   vec3 r = (a + b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/add/vec3-vec3/i32.wgsl.expected.glsl b/test/expressions/binary/add/vec3-vec3/i32.wgsl.expected.glsl
index 14f55b4..d3c9d1d 100644
--- a/test/expressions/binary/add/vec3-vec3/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/add/vec3-vec3/i32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   ivec3 a = ivec3(1, 2, 3);
   ivec3 b = ivec3(4, 5, 6);
   ivec3 r = (a + b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/add/vec3-vec3/u32.wgsl.expected.glsl b/test/expressions/binary/add/vec3-vec3/u32.wgsl.expected.glsl
index 9956af3..507acf4 100644
--- a/test/expressions/binary/add/vec3-vec3/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/add/vec3-vec3/u32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
   uvec3 b = uvec3(4u, 5u, 6u);
   uvec3 r = (a + b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/bit-and/scalar-scalar/i32.wgsl.expected.glsl b/test/expressions/binary/bit-and/scalar-scalar/i32.wgsl.expected.glsl
index 4e33041..d02d112 100644
--- a/test/expressions/binary/bit-and/scalar-scalar/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/bit-and/scalar-scalar/i32.wgsl.expected.glsl
@@ -1,13 +1,12 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   int r = (1 & 2);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/bit-and/scalar-scalar/u32.wgsl.expected.glsl b/test/expressions/binary/bit-and/scalar-scalar/u32.wgsl.expected.glsl
index ae4149d..4d5fab3 100644
--- a/test/expressions/binary/bit-and/scalar-scalar/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/bit-and/scalar-scalar/u32.wgsl.expected.glsl
@@ -1,13 +1,12 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uint r = (1u & 2u);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/bit-and/vec3-vec3/i32.wgsl.expected.glsl b/test/expressions/binary/bit-and/vec3-vec3/i32.wgsl.expected.glsl
index 1091a53..33d54db 100644
--- a/test/expressions/binary/bit-and/vec3-vec3/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/bit-and/vec3-vec3/i32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   ivec3 a = ivec3(1, 2, 3);
   ivec3 b = ivec3(4, 5, 6);
   ivec3 r = (a & b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/bit-and/vec3-vec3/u32.wgsl.expected.glsl b/test/expressions/binary/bit-and/vec3-vec3/u32.wgsl.expected.glsl
index d594442..c744891 100644
--- a/test/expressions/binary/bit-and/vec3-vec3/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/bit-and/vec3-vec3/u32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
   uvec3 b = uvec3(4u, 5u, 6u);
   uvec3 r = (a & b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/bit-or/scalar-scalar/i32.wgsl.expected.glsl b/test/expressions/binary/bit-or/scalar-scalar/i32.wgsl.expected.glsl
index db2479f..523d274 100644
--- a/test/expressions/binary/bit-or/scalar-scalar/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/bit-or/scalar-scalar/i32.wgsl.expected.glsl
@@ -1,13 +1,12 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   int r = (1 | 2);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/bit-or/scalar-scalar/u32.wgsl.expected.glsl b/test/expressions/binary/bit-or/scalar-scalar/u32.wgsl.expected.glsl
index 38b5d66..bf49a23 100644
--- a/test/expressions/binary/bit-or/scalar-scalar/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/bit-or/scalar-scalar/u32.wgsl.expected.glsl
@@ -1,13 +1,12 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uint r = (1u | 2u);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/bit-or/vec3-vec3/i32.wgsl.expected.glsl b/test/expressions/binary/bit-or/vec3-vec3/i32.wgsl.expected.glsl
index 37b3d5f..c534e41 100644
--- a/test/expressions/binary/bit-or/vec3-vec3/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/bit-or/vec3-vec3/i32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   ivec3 a = ivec3(1, 2, 3);
   ivec3 b = ivec3(4, 5, 6);
   ivec3 r = (a | b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/bit-or/vec3-vec3/u32.wgsl.expected.glsl b/test/expressions/binary/bit-or/vec3-vec3/u32.wgsl.expected.glsl
index e938edb..088472a 100644
--- a/test/expressions/binary/bit-or/vec3-vec3/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/bit-or/vec3-vec3/u32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
   uvec3 b = uvec3(4u, 5u, 6u);
   uvec3 r = (a | b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/bit-xor/scalar-scalar/i32.wgsl.expected.glsl b/test/expressions/binary/bit-xor/scalar-scalar/i32.wgsl.expected.glsl
index 0bf5a9e..9a6f598 100644
--- a/test/expressions/binary/bit-xor/scalar-scalar/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/bit-xor/scalar-scalar/i32.wgsl.expected.glsl
@@ -1,13 +1,12 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   int r = (1 ^ 2);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/bit-xor/scalar-scalar/u32.wgsl.expected.glsl b/test/expressions/binary/bit-xor/scalar-scalar/u32.wgsl.expected.glsl
index 5509458..258ecbe 100644
--- a/test/expressions/binary/bit-xor/scalar-scalar/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/bit-xor/scalar-scalar/u32.wgsl.expected.glsl
@@ -1,13 +1,12 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uint r = (1u ^ 2u);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/bit-xor/vec3-vec3/i32.wgsl.expected.glsl b/test/expressions/binary/bit-xor/vec3-vec3/i32.wgsl.expected.glsl
index 386ff24..26e1730 100644
--- a/test/expressions/binary/bit-xor/vec3-vec3/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/bit-xor/vec3-vec3/i32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   ivec3 a = ivec3(1, 2, 3);
   ivec3 b = ivec3(4, 5, 6);
   ivec3 r = (a ^ b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/bit-xor/vec3-vec3/u32.wgsl.expected.glsl b/test/expressions/binary/bit-xor/vec3-vec3/u32.wgsl.expected.glsl
index 4b18413..4cf58b1 100644
--- a/test/expressions/binary/bit-xor/vec3-vec3/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/bit-xor/vec3-vec3/u32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
   uvec3 b = uvec3(4u, 5u, 6u);
   uvec3 r = (a ^ b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/div/scalar-scalar/f32.wgsl.expected.glsl b/test/expressions/binary/div/scalar-scalar/f32.wgsl.expected.glsl
index 9ce3552..94a762d 100644
--- a/test/expressions/binary/div/scalar-scalar/f32.wgsl.expected.glsl
+++ b/test/expressions/binary/div/scalar-scalar/f32.wgsl.expected.glsl
@@ -1,13 +1,12 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   float r = (1.0f / 2.0f);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/div/scalar-scalar/i32.wgsl.expected.glsl b/test/expressions/binary/div/scalar-scalar/i32.wgsl.expected.glsl
index 04a161e..a6234f1 100644
--- a/test/expressions/binary/div/scalar-scalar/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/div/scalar-scalar/i32.wgsl.expected.glsl
@@ -1,13 +1,12 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   int r = (1 / 2);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/div/scalar-scalar/u32.wgsl.expected.glsl b/test/expressions/binary/div/scalar-scalar/u32.wgsl.expected.glsl
index 16baff5..d99c8e1 100644
--- a/test/expressions/binary/div/scalar-scalar/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/div/scalar-scalar/u32.wgsl.expected.glsl
@@ -1,13 +1,12 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uint r = (1u / 2u);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/div/scalar-vec3/f32.wgsl.expected.glsl b/test/expressions/binary/div/scalar-vec3/f32.wgsl.expected.glsl
index 968e319..a64f12f 100644
--- a/test/expressions/binary/div/scalar-vec3/f32.wgsl.expected.glsl
+++ b/test/expressions/binary/div/scalar-vec3/f32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   float a = 4.0f;
   vec3 b = vec3(1.0f, 2.0f, 3.0f);
   vec3 r = (a / b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/div/scalar-vec3/i32.wgsl.expected.glsl b/test/expressions/binary/div/scalar-vec3/i32.wgsl.expected.glsl
index 0a2c8b3..4160043 100644
--- a/test/expressions/binary/div/scalar-vec3/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/div/scalar-vec3/i32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   int a = 4;
   ivec3 b = ivec3(1, 2, 3);
   ivec3 r = (a / b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/div/scalar-vec3/u32.wgsl.expected.glsl b/test/expressions/binary/div/scalar-vec3/u32.wgsl.expected.glsl
index c5ab59f..9bb9d30 100644
--- a/test/expressions/binary/div/scalar-vec3/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/div/scalar-vec3/u32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uint a = 4u;
   uvec3 b = uvec3(1u, 2u, 3u);
   uvec3 r = (a / b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/div/vec3-scalar/f32.wgsl.expected.glsl b/test/expressions/binary/div/vec3-scalar/f32.wgsl.expected.glsl
index ce2532e..240d5a3 100644
--- a/test/expressions/binary/div/vec3-scalar/f32.wgsl.expected.glsl
+++ b/test/expressions/binary/div/vec3-scalar/f32.wgsl.expected.glsl
@@ -1,14 +1,13 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   vec3 a = vec3(1.0f, 2.0f, 3.0f);
   vec3 r = (a / 4.0f);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/div/vec3-scalar/i32.wgsl.expected.glsl b/test/expressions/binary/div/vec3-scalar/i32.wgsl.expected.glsl
index 9d8ce73..38115e3 100644
--- a/test/expressions/binary/div/vec3-scalar/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/div/vec3-scalar/i32.wgsl.expected.glsl
@@ -1,14 +1,13 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   ivec3 a = ivec3(1, 2, 3);
   ivec3 r = (a / 4);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/div/vec3-scalar/u32.wgsl.expected.glsl b/test/expressions/binary/div/vec3-scalar/u32.wgsl.expected.glsl
index 05c23d9..9c76b05 100644
--- a/test/expressions/binary/div/vec3-scalar/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/div/vec3-scalar/u32.wgsl.expected.glsl
@@ -1,14 +1,13 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
   uvec3 r = (a / 4u);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/div/vec3-vec3/f32.wgsl.expected.glsl b/test/expressions/binary/div/vec3-vec3/f32.wgsl.expected.glsl
index 03e4822..a1bec3e 100644
--- a/test/expressions/binary/div/vec3-vec3/f32.wgsl.expected.glsl
+++ b/test/expressions/binary/div/vec3-vec3/f32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   vec3 a = vec3(1.0f, 2.0f, 3.0f);
   vec3 b = vec3(4.0f, 5.0f, 6.0f);
   vec3 r = (a / b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/div/vec3-vec3/i32.wgsl.expected.glsl b/test/expressions/binary/div/vec3-vec3/i32.wgsl.expected.glsl
index b25a8ae..418690f 100644
--- a/test/expressions/binary/div/vec3-vec3/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/div/vec3-vec3/i32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   ivec3 a = ivec3(1, 2, 3);
   ivec3 b = ivec3(4, 5, 6);
   ivec3 r = (a / b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/div/vec3-vec3/u32.wgsl.expected.glsl b/test/expressions/binary/div/vec3-vec3/u32.wgsl.expected.glsl
index faac292..8d98c77 100644
--- a/test/expressions/binary/div/vec3-vec3/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/div/vec3-vec3/u32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
   uvec3 b = uvec3(4u, 5u, 6u);
   uvec3 r = (a / b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/div_by_zero/by_constant/scalar-scalar/f32.wgsl.expected.glsl b/test/expressions/binary/div_by_zero/by_constant/scalar-scalar/f32.wgsl.expected.glsl
index a9f5867..5400248 100644
--- a/test/expressions/binary/div_by_zero/by_constant/scalar-scalar/f32.wgsl.expected.glsl
+++ b/test/expressions/binary/div_by_zero/by_constant/scalar-scalar/f32.wgsl.expected.glsl
@@ -1,13 +1,12 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   float r = (1.0f / 0.0f);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/div_by_zero/by_constant/scalar-scalar/i32.wgsl.expected.glsl b/test/expressions/binary/div_by_zero/by_constant/scalar-scalar/i32.wgsl.expected.glsl
index 5aecc10..cc3309a 100644
--- a/test/expressions/binary/div_by_zero/by_constant/scalar-scalar/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/div_by_zero/by_constant/scalar-scalar/i32.wgsl.expected.glsl
@@ -1,13 +1,12 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   int r = (1 / 0);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/div_by_zero/by_constant/scalar-scalar/u32.wgsl.expected.glsl b/test/expressions/binary/div_by_zero/by_constant/scalar-scalar/u32.wgsl.expected.glsl
index 9a9100c..9804a34 100644
--- a/test/expressions/binary/div_by_zero/by_constant/scalar-scalar/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/div_by_zero/by_constant/scalar-scalar/u32.wgsl.expected.glsl
@@ -1,13 +1,12 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uint r = (1u / 0u);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/div_by_zero/by_constant/scalar-vec3/f32.wgsl.expected.glsl b/test/expressions/binary/div_by_zero/by_constant/scalar-vec3/f32.wgsl.expected.glsl
index 296587e..5400d89 100644
--- a/test/expressions/binary/div_by_zero/by_constant/scalar-vec3/f32.wgsl.expected.glsl
+++ b/test/expressions/binary/div_by_zero/by_constant/scalar-vec3/f32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   float a = 4.0f;
   vec3 b = vec3(0.0f, 2.0f, 0.0f);
   vec3 r = (a / b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/div_by_zero/by_constant/scalar-vec3/i32.wgsl.expected.glsl b/test/expressions/binary/div_by_zero/by_constant/scalar-vec3/i32.wgsl.expected.glsl
index 19372fd..7ea67c9 100644
--- a/test/expressions/binary/div_by_zero/by_constant/scalar-vec3/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/div_by_zero/by_constant/scalar-vec3/i32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   int a = 4;
   ivec3 b = ivec3(0, 2, 0);
   ivec3 r = (a / b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/div_by_zero/by_constant/scalar-vec3/u32.wgsl.expected.glsl b/test/expressions/binary/div_by_zero/by_constant/scalar-vec3/u32.wgsl.expected.glsl
index 2ca5062..93386d1 100644
--- a/test/expressions/binary/div_by_zero/by_constant/scalar-vec3/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/div_by_zero/by_constant/scalar-vec3/u32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uint a = 4u;
   uvec3 b = uvec3(0u, 2u, 0u);
   uvec3 r = (a / b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/div_by_zero/by_constant/vec3-scalar/f32.wgsl.expected.glsl b/test/expressions/binary/div_by_zero/by_constant/vec3-scalar/f32.wgsl.expected.glsl
index 4e2085b..1bd63af 100644
--- a/test/expressions/binary/div_by_zero/by_constant/vec3-scalar/f32.wgsl.expected.glsl
+++ b/test/expressions/binary/div_by_zero/by_constant/vec3-scalar/f32.wgsl.expected.glsl
@@ -1,14 +1,13 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   vec3 a = vec3(1.0f, 2.0f, 3.0f);
   vec3 r = (a / 0.0f);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/div_by_zero/by_constant/vec3-scalar/i32.wgsl.expected.glsl b/test/expressions/binary/div_by_zero/by_constant/vec3-scalar/i32.wgsl.expected.glsl
index 47945cb..861e933 100644
--- a/test/expressions/binary/div_by_zero/by_constant/vec3-scalar/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/div_by_zero/by_constant/vec3-scalar/i32.wgsl.expected.glsl
@@ -1,14 +1,13 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   ivec3 a = ivec3(1, 2, 3);
   ivec3 r = (a / 0);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/div_by_zero/by_constant/vec3-scalar/u32.wgsl.expected.glsl b/test/expressions/binary/div_by_zero/by_constant/vec3-scalar/u32.wgsl.expected.glsl
index 0c9cf4c..b6ec3d8 100644
--- a/test/expressions/binary/div_by_zero/by_constant/vec3-scalar/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/div_by_zero/by_constant/vec3-scalar/u32.wgsl.expected.glsl
@@ -1,14 +1,13 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
   uvec3 r = (a / 0u);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/div_by_zero/by_constant/vec3-vec3/f32.wgsl.expected.glsl b/test/expressions/binary/div_by_zero/by_constant/vec3-vec3/f32.wgsl.expected.glsl
index fe6684d..d91d8aa 100644
--- a/test/expressions/binary/div_by_zero/by_constant/vec3-vec3/f32.wgsl.expected.glsl
+++ b/test/expressions/binary/div_by_zero/by_constant/vec3-vec3/f32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   vec3 a = vec3(1.0f, 2.0f, 3.0f);
   vec3 b = vec3(0.0f, 5.0f, 0.0f);
   vec3 r = (a / b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/div_by_zero/by_constant/vec3-vec3/i32.wgsl.expected.glsl b/test/expressions/binary/div_by_zero/by_constant/vec3-vec3/i32.wgsl.expected.glsl
index d20b10d..412bd3b 100644
--- a/test/expressions/binary/div_by_zero/by_constant/vec3-vec3/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/div_by_zero/by_constant/vec3-vec3/i32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   ivec3 a = ivec3(1, 2, 3);
   ivec3 b = ivec3(0, 5, 0);
   ivec3 r = (a / b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/div_by_zero/by_constant/vec3-vec3/u32.wgsl.expected.glsl b/test/expressions/binary/div_by_zero/by_constant/vec3-vec3/u32.wgsl.expected.glsl
index 3fc99d1..f9b3b3e 100644
--- a/test/expressions/binary/div_by_zero/by_constant/vec3-vec3/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/div_by_zero/by_constant/vec3-vec3/u32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
   uvec3 b = uvec3(0u, 5u, 0u);
   uvec3 r = (a / b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/div_by_zero/by_expression/scalar-scalar/f32.wgsl.expected.glsl b/test/expressions/binary/div_by_zero/by_expression/scalar-scalar/f32.wgsl.expected.glsl
index 1410729..bb9b674 100644
--- a/test/expressions/binary/div_by_zero/by_expression/scalar-scalar/f32.wgsl.expected.glsl
+++ b/test/expressions/binary/div_by_zero/by_expression/scalar-scalar/f32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   float a = 1.0f;
   float b = 0.0f;
   float r = (a / (b + b));
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/div_by_zero/by_expression/scalar-scalar/i32.wgsl.expected.glsl b/test/expressions/binary/div_by_zero/by_expression/scalar-scalar/i32.wgsl.expected.glsl
index 53c8ba4..4d6387f 100644
--- a/test/expressions/binary/div_by_zero/by_expression/scalar-scalar/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/div_by_zero/by_expression/scalar-scalar/i32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   int a = 1;
   int b = 0;
   int r = (a / (b + b));
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/div_by_zero/by_expression/scalar-scalar/u32.wgsl.expected.glsl b/test/expressions/binary/div_by_zero/by_expression/scalar-scalar/u32.wgsl.expected.glsl
index 7b857f9..dac49e3 100644
--- a/test/expressions/binary/div_by_zero/by_expression/scalar-scalar/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/div_by_zero/by_expression/scalar-scalar/u32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uint a = 1u;
   uint b = 0u;
   uint r = (a / (b + b));
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/div_by_zero/by_expression/scalar-vec3/f32.wgsl.expected.glsl b/test/expressions/binary/div_by_zero/by_expression/scalar-vec3/f32.wgsl.expected.glsl
index 709ea3b..a4a2599 100644
--- a/test/expressions/binary/div_by_zero/by_expression/scalar-vec3/f32.wgsl.expected.glsl
+++ b/test/expressions/binary/div_by_zero/by_expression/scalar-vec3/f32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   float a = 4.0f;
   vec3 b = vec3(0.0f, 2.0f, 0.0f);
   vec3 r = (a / (b + b));
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/div_by_zero/by_expression/scalar-vec3/i32.wgsl.expected.glsl b/test/expressions/binary/div_by_zero/by_expression/scalar-vec3/i32.wgsl.expected.glsl
index b9172f6..ddc941c 100644
--- a/test/expressions/binary/div_by_zero/by_expression/scalar-vec3/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/div_by_zero/by_expression/scalar-vec3/i32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   int a = 4;
   ivec3 b = ivec3(0, 2, 0);
   ivec3 r = (a / (b + b));
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/div_by_zero/by_expression/scalar-vec3/u32.wgsl.expected.glsl b/test/expressions/binary/div_by_zero/by_expression/scalar-vec3/u32.wgsl.expected.glsl
index 9b2455b..6112e17 100644
--- a/test/expressions/binary/div_by_zero/by_expression/scalar-vec3/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/div_by_zero/by_expression/scalar-vec3/u32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uint a = 4u;
   uvec3 b = uvec3(0u, 2u, 0u);
   uvec3 r = (a / (b + b));
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/div_by_zero/by_expression/vec3-scalar/f32.wgsl.expected.glsl b/test/expressions/binary/div_by_zero/by_expression/vec3-scalar/f32.wgsl.expected.glsl
index c98f287..efe71e1 100644
--- a/test/expressions/binary/div_by_zero/by_expression/vec3-scalar/f32.wgsl.expected.glsl
+++ b/test/expressions/binary/div_by_zero/by_expression/vec3-scalar/f32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   vec3 a = vec3(1.0f, 2.0f, 3.0f);
   float b = 0.0f;
   vec3 r = (a / (b + b));
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/div_by_zero/by_expression/vec3-scalar/i32.wgsl.expected.glsl b/test/expressions/binary/div_by_zero/by_expression/vec3-scalar/i32.wgsl.expected.glsl
index 3178cf2..0cb8733 100644
--- a/test/expressions/binary/div_by_zero/by_expression/vec3-scalar/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/div_by_zero/by_expression/vec3-scalar/i32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   ivec3 a = ivec3(1, 2, 3);
   int b = 0;
   ivec3 r = (a / (b + b));
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/div_by_zero/by_expression/vec3-scalar/u32.wgsl.expected.glsl b/test/expressions/binary/div_by_zero/by_expression/vec3-scalar/u32.wgsl.expected.glsl
index 00dd875..f7ff68e 100644
--- a/test/expressions/binary/div_by_zero/by_expression/vec3-scalar/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/div_by_zero/by_expression/vec3-scalar/u32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
   uint b = 0u;
   uvec3 r = (a / (b + b));
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/div_by_zero/by_expression/vec3-vec3/f32.wgsl.expected.glsl b/test/expressions/binary/div_by_zero/by_expression/vec3-vec3/f32.wgsl.expected.glsl
index 7f66bc7..2cac613 100644
--- a/test/expressions/binary/div_by_zero/by_expression/vec3-vec3/f32.wgsl.expected.glsl
+++ b/test/expressions/binary/div_by_zero/by_expression/vec3-vec3/f32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   vec3 a = vec3(1.0f, 2.0f, 3.0f);
   vec3 b = vec3(0.0f, 5.0f, 0.0f);
   vec3 r = (a / (b + b));
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/div_by_zero/by_expression/vec3-vec3/i32.wgsl.expected.glsl b/test/expressions/binary/div_by_zero/by_expression/vec3-vec3/i32.wgsl.expected.glsl
index ff1cd8d..12759bc 100644
--- a/test/expressions/binary/div_by_zero/by_expression/vec3-vec3/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/div_by_zero/by_expression/vec3-vec3/i32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   ivec3 a = ivec3(1, 2, 3);
   ivec3 b = ivec3(0, 5, 0);
   ivec3 r = (a / (b + b));
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/div_by_zero/by_expression/vec3-vec3/u32.wgsl.expected.glsl b/test/expressions/binary/div_by_zero/by_expression/vec3-vec3/u32.wgsl.expected.glsl
index 328c0a2..36f35b3 100644
--- a/test/expressions/binary/div_by_zero/by_expression/vec3-vec3/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/div_by_zero/by_expression/vec3-vec3/u32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
   uvec3 b = uvec3(0u, 5u, 0u);
   uvec3 r = (a / (b + b));
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/div_by_zero/by_identifier/scalar-scalar/f32.wgsl.expected.glsl b/test/expressions/binary/div_by_zero/by_identifier/scalar-scalar/f32.wgsl.expected.glsl
index 09ba0c8..e4ef44a 100644
--- a/test/expressions/binary/div_by_zero/by_identifier/scalar-scalar/f32.wgsl.expected.glsl
+++ b/test/expressions/binary/div_by_zero/by_identifier/scalar-scalar/f32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   float a = 1.0f;
   float b = 0.0f;
   float r = (a / b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/div_by_zero/by_identifier/scalar-scalar/i32.wgsl.expected.glsl b/test/expressions/binary/div_by_zero/by_identifier/scalar-scalar/i32.wgsl.expected.glsl
index f545f0b..3a5a1eb 100644
--- a/test/expressions/binary/div_by_zero/by_identifier/scalar-scalar/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/div_by_zero/by_identifier/scalar-scalar/i32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   int a = 1;
   int b = 0;
   int r = (a / b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/div_by_zero/by_identifier/scalar-scalar/u32.wgsl.expected.glsl b/test/expressions/binary/div_by_zero/by_identifier/scalar-scalar/u32.wgsl.expected.glsl
index 37ae046..0bec649 100644
--- a/test/expressions/binary/div_by_zero/by_identifier/scalar-scalar/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/div_by_zero/by_identifier/scalar-scalar/u32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uint a = 1u;
   uint b = 0u;
   uint r = (a / b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/div_by_zero/by_identifier/scalar-vec3/f32.wgsl.expected.glsl b/test/expressions/binary/div_by_zero/by_identifier/scalar-vec3/f32.wgsl.expected.glsl
index 296587e..5400d89 100644
--- a/test/expressions/binary/div_by_zero/by_identifier/scalar-vec3/f32.wgsl.expected.glsl
+++ b/test/expressions/binary/div_by_zero/by_identifier/scalar-vec3/f32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   float a = 4.0f;
   vec3 b = vec3(0.0f, 2.0f, 0.0f);
   vec3 r = (a / b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/div_by_zero/by_identifier/scalar-vec3/i32.wgsl.expected.glsl b/test/expressions/binary/div_by_zero/by_identifier/scalar-vec3/i32.wgsl.expected.glsl
index 19372fd..7ea67c9 100644
--- a/test/expressions/binary/div_by_zero/by_identifier/scalar-vec3/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/div_by_zero/by_identifier/scalar-vec3/i32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   int a = 4;
   ivec3 b = ivec3(0, 2, 0);
   ivec3 r = (a / b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/div_by_zero/by_identifier/scalar-vec3/u32.wgsl.expected.glsl b/test/expressions/binary/div_by_zero/by_identifier/scalar-vec3/u32.wgsl.expected.glsl
index 2ca5062..93386d1 100644
--- a/test/expressions/binary/div_by_zero/by_identifier/scalar-vec3/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/div_by_zero/by_identifier/scalar-vec3/u32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uint a = 4u;
   uvec3 b = uvec3(0u, 2u, 0u);
   uvec3 r = (a / b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/div_by_zero/by_identifier/vec3-scalar/f32.wgsl.expected.glsl b/test/expressions/binary/div_by_zero/by_identifier/vec3-scalar/f32.wgsl.expected.glsl
index ffa9909..dc75696 100644
--- a/test/expressions/binary/div_by_zero/by_identifier/vec3-scalar/f32.wgsl.expected.glsl
+++ b/test/expressions/binary/div_by_zero/by_identifier/vec3-scalar/f32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   vec3 a = vec3(1.0f, 2.0f, 3.0f);
   float b = 0.0f;
   vec3 r = (a / b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/div_by_zero/by_identifier/vec3-scalar/i32.wgsl.expected.glsl b/test/expressions/binary/div_by_zero/by_identifier/vec3-scalar/i32.wgsl.expected.glsl
index 58899fd..0807c6c 100644
--- a/test/expressions/binary/div_by_zero/by_identifier/vec3-scalar/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/div_by_zero/by_identifier/vec3-scalar/i32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   ivec3 a = ivec3(1, 2, 3);
   int b = 0;
   ivec3 r = (a / b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/div_by_zero/by_identifier/vec3-scalar/u32.wgsl.expected.glsl b/test/expressions/binary/div_by_zero/by_identifier/vec3-scalar/u32.wgsl.expected.glsl
index b1bcc1c..221c532 100644
--- a/test/expressions/binary/div_by_zero/by_identifier/vec3-scalar/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/div_by_zero/by_identifier/vec3-scalar/u32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
   uint b = 0u;
   uvec3 r = (a / b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/div_by_zero/by_identifier/vec3-vec3/f32.wgsl.expected.glsl b/test/expressions/binary/div_by_zero/by_identifier/vec3-vec3/f32.wgsl.expected.glsl
index fe6684d..d91d8aa 100644
--- a/test/expressions/binary/div_by_zero/by_identifier/vec3-vec3/f32.wgsl.expected.glsl
+++ b/test/expressions/binary/div_by_zero/by_identifier/vec3-vec3/f32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   vec3 a = vec3(1.0f, 2.0f, 3.0f);
   vec3 b = vec3(0.0f, 5.0f, 0.0f);
   vec3 r = (a / b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/div_by_zero/by_identifier/vec3-vec3/i32.wgsl.expected.glsl b/test/expressions/binary/div_by_zero/by_identifier/vec3-vec3/i32.wgsl.expected.glsl
index d20b10d..412bd3b 100644
--- a/test/expressions/binary/div_by_zero/by_identifier/vec3-vec3/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/div_by_zero/by_identifier/vec3-vec3/i32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   ivec3 a = ivec3(1, 2, 3);
   ivec3 b = ivec3(0, 5, 0);
   ivec3 r = (a / b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/div_by_zero/by_identifier/vec3-vec3/u32.wgsl.expected.glsl b/test/expressions/binary/div_by_zero/by_identifier/vec3-vec3/u32.wgsl.expected.glsl
index 3fc99d1..f9b3b3e 100644
--- a/test/expressions/binary/div_by_zero/by_identifier/vec3-vec3/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/div_by_zero/by_identifier/vec3-vec3/u32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
   uvec3 b = uvec3(0u, 5u, 0u);
   uvec3 r = (a / b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/left-shift/scalar-scalar/i32.wgsl.expected.glsl b/test/expressions/binary/left-shift/scalar-scalar/i32.wgsl.expected.glsl
index f57ae36..029afa3 100644
--- a/test/expressions/binary/left-shift/scalar-scalar/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/left-shift/scalar-scalar/i32.wgsl.expected.glsl
@@ -1,13 +1,12 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   int r = (1 << 2u);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/left-shift/scalar-scalar/u32.wgsl.expected.glsl b/test/expressions/binary/left-shift/scalar-scalar/u32.wgsl.expected.glsl
index 4d0d3ce..bf173df 100644
--- a/test/expressions/binary/left-shift/scalar-scalar/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/left-shift/scalar-scalar/u32.wgsl.expected.glsl
@@ -1,13 +1,12 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uint r = (1u << 2u);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/left-shift/vector-vector/i32.wgsl.expected.glsl b/test/expressions/binary/left-shift/vector-vector/i32.wgsl.expected.glsl
index db0ef8f..38ebb21 100644
--- a/test/expressions/binary/left-shift/vector-vector/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/left-shift/vector-vector/i32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   ivec3 a = ivec3(1, 2, 3);
   uvec3 b = uvec3(4u, 5u, 6u);
   ivec3 r = (a << b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/left-shift/vector-vector/u32.wgsl.expected.glsl b/test/expressions/binary/left-shift/vector-vector/u32.wgsl.expected.glsl
index f886625..d2e81ef 100644
--- a/test/expressions/binary/left-shift/vector-vector/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/left-shift/vector-vector/u32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
   uvec3 b = uvec3(4u, 5u, 6u);
   uvec3 r = (a << b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/mod/scalar-scalar/f32.wgsl.expected.glsl b/test/expressions/binary/mod/scalar-scalar/f32.wgsl.expected.glsl
index 7587ea3..0c9f929 100644
--- a/test/expressions/binary/mod/scalar-scalar/f32.wgsl.expected.glsl
+++ b/test/expressions/binary/mod/scalar-scalar/f32.wgsl.expected.glsl
@@ -3,19 +3,18 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   float r = (1.0f % 2.0f);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:6: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type ' const float' and a right operand of type ' const float' (or there is no acceptable conversion)
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type ' const float' and a right operand of type ' const float' (or there is no acceptable conversion)
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/expressions/binary/mod/scalar-scalar/i32.wgsl.expected.glsl b/test/expressions/binary/mod/scalar-scalar/i32.wgsl.expected.glsl
index 506196a..c66c552 100644
--- a/test/expressions/binary/mod/scalar-scalar/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/mod/scalar-scalar/i32.wgsl.expected.glsl
@@ -1,13 +1,12 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   int r = (1 % 2);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/mod/scalar-scalar/u32.wgsl.expected.glsl b/test/expressions/binary/mod/scalar-scalar/u32.wgsl.expected.glsl
index 0040d2b..7b67a86 100644
--- a/test/expressions/binary/mod/scalar-scalar/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/mod/scalar-scalar/u32.wgsl.expected.glsl
@@ -1,13 +1,12 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uint r = (1u % 2u);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/mod/vec3-vec3/f32.wgsl.expected.glsl b/test/expressions/binary/mod/vec3-vec3/f32.wgsl.expected.glsl
index fbf2962..8eb2f99 100644
--- a/test/expressions/binary/mod/vec3-vec3/f32.wgsl.expected.glsl
+++ b/test/expressions/binary/mod/vec3-vec3/f32.wgsl.expected.glsl
@@ -3,21 +3,20 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   vec3 a = vec3(1.0f, 2.0f, 3.0f);
   vec3 b = vec3(4.0f, 5.0f, 6.0f);
   vec3 r = (a % b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:8: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type ' temp mediump 3-component vector of float' and a right operand of type ' temp mediump 3-component vector of float' (or there is no acceptable conversion)
-ERROR: 0:8: '' : compilation terminated 
+ERROR: 0:7: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type ' temp mediump 3-component vector of float' and a right operand of type ' temp mediump 3-component vector of float' (or there is no acceptable conversion)
+ERROR: 0:7: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/expressions/binary/mod/vec3-vec3/i32.wgsl.expected.glsl b/test/expressions/binary/mod/vec3-vec3/i32.wgsl.expected.glsl
index 685f89d..31a572b 100644
--- a/test/expressions/binary/mod/vec3-vec3/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/mod/vec3-vec3/i32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   ivec3 a = ivec3(1, 2, 3);
   ivec3 b = ivec3(4, 5, 6);
   ivec3 r = (a % b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/mod/vec3-vec3/u32.wgsl.expected.glsl b/test/expressions/binary/mod/vec3-vec3/u32.wgsl.expected.glsl
index fe2fe88..d034dd1 100644
--- a/test/expressions/binary/mod/vec3-vec3/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/mod/vec3-vec3/u32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
   uvec3 b = uvec3(4u, 5u, 6u);
   uvec3 r = (a % b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/mod_by_zero/by_constant/scalar-scalar/f32.wgsl.expected.glsl b/test/expressions/binary/mod_by_zero/by_constant/scalar-scalar/f32.wgsl.expected.glsl
index 6d3d71d..5b23407 100644
--- a/test/expressions/binary/mod_by_zero/by_constant/scalar-scalar/f32.wgsl.expected.glsl
+++ b/test/expressions/binary/mod_by_zero/by_constant/scalar-scalar/f32.wgsl.expected.glsl
@@ -3,19 +3,18 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   float r = (1.0f % 0.0f);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:6: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type ' const float' and a right operand of type ' const float' (or there is no acceptable conversion)
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:5: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type ' const float' and a right operand of type ' const float' (or there is no acceptable conversion)
+ERROR: 0:5: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/expressions/binary/mod_by_zero/by_constant/scalar-scalar/i32.wgsl.expected.glsl b/test/expressions/binary/mod_by_zero/by_constant/scalar-scalar/i32.wgsl.expected.glsl
index 6bef751..dabd566 100644
--- a/test/expressions/binary/mod_by_zero/by_constant/scalar-scalar/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/mod_by_zero/by_constant/scalar-scalar/i32.wgsl.expected.glsl
@@ -1,13 +1,12 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   int r = (1 % 0);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/mod_by_zero/by_constant/scalar-scalar/u32.wgsl.expected.glsl b/test/expressions/binary/mod_by_zero/by_constant/scalar-scalar/u32.wgsl.expected.glsl
index 56ac547..d528f41 100644
--- a/test/expressions/binary/mod_by_zero/by_constant/scalar-scalar/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/mod_by_zero/by_constant/scalar-scalar/u32.wgsl.expected.glsl
@@ -1,13 +1,12 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uint r = (1u % 0u);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/mod_by_zero/by_constant/scalar-vec3/i32.wgsl.expected.glsl b/test/expressions/binary/mod_by_zero/by_constant/scalar-vec3/i32.wgsl.expected.glsl
index 589fb87..1a6bb8c 100644
--- a/test/expressions/binary/mod_by_zero/by_constant/scalar-vec3/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/mod_by_zero/by_constant/scalar-vec3/i32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   int a = 4;
   ivec3 b = ivec3(0, 2, 0);
   ivec3 r = (a % b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/mod_by_zero/by_constant/scalar-vec3/u32.wgsl.expected.glsl b/test/expressions/binary/mod_by_zero/by_constant/scalar-vec3/u32.wgsl.expected.glsl
index a4b1c80..271cddc 100644
--- a/test/expressions/binary/mod_by_zero/by_constant/scalar-vec3/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/mod_by_zero/by_constant/scalar-vec3/u32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uint a = 4u;
   uvec3 b = uvec3(0u, 2u, 0u);
   uvec3 r = (a % b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/mod_by_zero/by_constant/vec3-scalar/i32.wgsl.expected.glsl b/test/expressions/binary/mod_by_zero/by_constant/vec3-scalar/i32.wgsl.expected.glsl
index 1c492a5..7437dc0 100644
--- a/test/expressions/binary/mod_by_zero/by_constant/vec3-scalar/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/mod_by_zero/by_constant/vec3-scalar/i32.wgsl.expected.glsl
@@ -1,14 +1,13 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   ivec3 a = ivec3(1, 2, 3);
   ivec3 r = (a % 0);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/mod_by_zero/by_constant/vec3-scalar/u32.wgsl.expected.glsl b/test/expressions/binary/mod_by_zero/by_constant/vec3-scalar/u32.wgsl.expected.glsl
index 6a048ef..61a8568 100644
--- a/test/expressions/binary/mod_by_zero/by_constant/vec3-scalar/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/mod_by_zero/by_constant/vec3-scalar/u32.wgsl.expected.glsl
@@ -1,14 +1,13 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
   uvec3 r = (a % 0u);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/mod_by_zero/by_constant/vec3-vec3/f32.wgsl.expected.glsl b/test/expressions/binary/mod_by_zero/by_constant/vec3-vec3/f32.wgsl.expected.glsl
index 9a5fc61..7f4bf3f 100644
--- a/test/expressions/binary/mod_by_zero/by_constant/vec3-vec3/f32.wgsl.expected.glsl
+++ b/test/expressions/binary/mod_by_zero/by_constant/vec3-vec3/f32.wgsl.expected.glsl
@@ -3,21 +3,20 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   vec3 a = vec3(1.0f, 2.0f, 3.0f);
   vec3 b = vec3(0.0f, 5.0f, 0.0f);
   vec3 r = (a % b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:8: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type ' temp mediump 3-component vector of float' and a right operand of type ' temp mediump 3-component vector of float' (or there is no acceptable conversion)
-ERROR: 0:8: '' : compilation terminated 
+ERROR: 0:7: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type ' temp mediump 3-component vector of float' and a right operand of type ' temp mediump 3-component vector of float' (or there is no acceptable conversion)
+ERROR: 0:7: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/expressions/binary/mod_by_zero/by_constant/vec3-vec3/i32.wgsl.expected.glsl b/test/expressions/binary/mod_by_zero/by_constant/vec3-vec3/i32.wgsl.expected.glsl
index d7abe79..f3dbd2b 100644
--- a/test/expressions/binary/mod_by_zero/by_constant/vec3-vec3/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/mod_by_zero/by_constant/vec3-vec3/i32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   ivec3 a = ivec3(1, 2, 3);
   ivec3 b = ivec3(0, 5, 0);
   ivec3 r = (a % b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/mod_by_zero/by_constant/vec3-vec3/u32.wgsl.expected.glsl b/test/expressions/binary/mod_by_zero/by_constant/vec3-vec3/u32.wgsl.expected.glsl
index dd411f1..5b66d7f 100644
--- a/test/expressions/binary/mod_by_zero/by_constant/vec3-vec3/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/mod_by_zero/by_constant/vec3-vec3/u32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
   uvec3 b = uvec3(0u, 5u, 0u);
   uvec3 r = (a % b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/mod_by_zero/by_expression/scalar-scalar/f32.wgsl.expected.glsl b/test/expressions/binary/mod_by_zero/by_expression/scalar-scalar/f32.wgsl.expected.glsl
index 14d3b41..ace9289 100644
--- a/test/expressions/binary/mod_by_zero/by_expression/scalar-scalar/f32.wgsl.expected.glsl
+++ b/test/expressions/binary/mod_by_zero/by_expression/scalar-scalar/f32.wgsl.expected.glsl
@@ -3,21 +3,20 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   float a = 1.0f;
   float b = 0.0f;
   float r = (a % (b + b));
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:8: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type ' temp mediump float' and a right operand of type ' temp mediump float' (or there is no acceptable conversion)
-ERROR: 0:8: '' : compilation terminated 
+ERROR: 0:7: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type ' temp mediump float' and a right operand of type ' temp mediump float' (or there is no acceptable conversion)
+ERROR: 0:7: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/expressions/binary/mod_by_zero/by_expression/scalar-scalar/i32.wgsl.expected.glsl b/test/expressions/binary/mod_by_zero/by_expression/scalar-scalar/i32.wgsl.expected.glsl
index 501dc92..d88e2eb 100644
--- a/test/expressions/binary/mod_by_zero/by_expression/scalar-scalar/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/mod_by_zero/by_expression/scalar-scalar/i32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   int a = 1;
   int b = 0;
   int r = (a % (b + b));
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/mod_by_zero/by_expression/scalar-scalar/u32.wgsl.expected.glsl b/test/expressions/binary/mod_by_zero/by_expression/scalar-scalar/u32.wgsl.expected.glsl
index 988e967..95a44ae 100644
--- a/test/expressions/binary/mod_by_zero/by_expression/scalar-scalar/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/mod_by_zero/by_expression/scalar-scalar/u32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uint a = 1u;
   uint b = 0u;
   uint r = (a % (b + b));
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/mod_by_zero/by_expression/scalar-vec3/i32.wgsl.expected.glsl b/test/expressions/binary/mod_by_zero/by_expression/scalar-vec3/i32.wgsl.expected.glsl
index 97ce0fa..54ae1ef 100644
--- a/test/expressions/binary/mod_by_zero/by_expression/scalar-vec3/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/mod_by_zero/by_expression/scalar-vec3/i32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   int a = 4;
   ivec3 b = ivec3(0, 2, 0);
   ivec3 r = (a % (b + b));
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/mod_by_zero/by_expression/scalar-vec3/u32.wgsl.expected.glsl b/test/expressions/binary/mod_by_zero/by_expression/scalar-vec3/u32.wgsl.expected.glsl
index 9bd7ffb..4658c32 100644
--- a/test/expressions/binary/mod_by_zero/by_expression/scalar-vec3/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/mod_by_zero/by_expression/scalar-vec3/u32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uint a = 4u;
   uvec3 b = uvec3(0u, 2u, 0u);
   uvec3 r = (a % (b + b));
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/mod_by_zero/by_expression/vec3-scalar/i32.wgsl.expected.glsl b/test/expressions/binary/mod_by_zero/by_expression/vec3-scalar/i32.wgsl.expected.glsl
index e0a0c05..deb241f 100644
--- a/test/expressions/binary/mod_by_zero/by_expression/vec3-scalar/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/mod_by_zero/by_expression/vec3-scalar/i32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   ivec3 a = ivec3(1, 2, 3);
   int b = 0;
   ivec3 r = (a % (b + b));
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/mod_by_zero/by_expression/vec3-scalar/u32.wgsl.expected.glsl b/test/expressions/binary/mod_by_zero/by_expression/vec3-scalar/u32.wgsl.expected.glsl
index 7e5a571..55bd606 100644
--- a/test/expressions/binary/mod_by_zero/by_expression/vec3-scalar/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/mod_by_zero/by_expression/vec3-scalar/u32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
   uint b = 0u;
   uvec3 r = (a % (b + b));
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/mod_by_zero/by_expression/vec3-vec3/f32.wgsl.expected.glsl b/test/expressions/binary/mod_by_zero/by_expression/vec3-vec3/f32.wgsl.expected.glsl
index 4c2f21f..5925f91 100644
--- a/test/expressions/binary/mod_by_zero/by_expression/vec3-vec3/f32.wgsl.expected.glsl
+++ b/test/expressions/binary/mod_by_zero/by_expression/vec3-vec3/f32.wgsl.expected.glsl
@@ -3,21 +3,20 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   vec3 a = vec3(1.0f, 2.0f, 3.0f);
   vec3 b = vec3(0.0f, 5.0f, 0.0f);
   vec3 r = (a % (b + b));
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:8: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type ' temp mediump 3-component vector of float' and a right operand of type ' temp mediump 3-component vector of float' (or there is no acceptable conversion)
-ERROR: 0:8: '' : compilation terminated 
+ERROR: 0:7: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type ' temp mediump 3-component vector of float' and a right operand of type ' temp mediump 3-component vector of float' (or there is no acceptable conversion)
+ERROR: 0:7: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/expressions/binary/mod_by_zero/by_expression/vec3-vec3/i32.wgsl.expected.glsl b/test/expressions/binary/mod_by_zero/by_expression/vec3-vec3/i32.wgsl.expected.glsl
index 70a09f5..96da4e0 100644
--- a/test/expressions/binary/mod_by_zero/by_expression/vec3-vec3/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/mod_by_zero/by_expression/vec3-vec3/i32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   ivec3 a = ivec3(1, 2, 3);
   ivec3 b = ivec3(0, 5, 0);
   ivec3 r = (a % (b + b));
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/mod_by_zero/by_expression/vec3-vec3/u32.wgsl.expected.glsl b/test/expressions/binary/mod_by_zero/by_expression/vec3-vec3/u32.wgsl.expected.glsl
index aea8897..f866539 100644
--- a/test/expressions/binary/mod_by_zero/by_expression/vec3-vec3/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/mod_by_zero/by_expression/vec3-vec3/u32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
   uvec3 b = uvec3(0u, 5u, 0u);
   uvec3 r = (a % (b + b));
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/f32.wgsl.expected.glsl b/test/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/f32.wgsl.expected.glsl
index 29fd5fe..34a9692 100644
--- a/test/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/f32.wgsl.expected.glsl
+++ b/test/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/f32.wgsl.expected.glsl
@@ -3,21 +3,20 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   float a = 1.0f;
   float b = 0.0f;
   float r = (a % b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:8: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type ' temp mediump float' and a right operand of type ' temp mediump float' (or there is no acceptable conversion)
-ERROR: 0:8: '' : compilation terminated 
+ERROR: 0:7: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type ' temp mediump float' and a right operand of type ' temp mediump float' (or there is no acceptable conversion)
+ERROR: 0:7: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/i32.wgsl.expected.glsl b/test/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/i32.wgsl.expected.glsl
index 1b64b4a..3ca2124 100644
--- a/test/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/i32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   int a = 1;
   int b = 0;
   int r = (a % b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/u32.wgsl.expected.glsl b/test/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/u32.wgsl.expected.glsl
index eca91f8..d97b5e9 100644
--- a/test/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/u32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uint a = 1u;
   uint b = 0u;
   uint r = (a % b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/mod_by_zero/by_identifier/scalar-vec3/i32.wgsl.expected.glsl b/test/expressions/binary/mod_by_zero/by_identifier/scalar-vec3/i32.wgsl.expected.glsl
index 589fb87..1a6bb8c 100644
--- a/test/expressions/binary/mod_by_zero/by_identifier/scalar-vec3/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/mod_by_zero/by_identifier/scalar-vec3/i32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   int a = 4;
   ivec3 b = ivec3(0, 2, 0);
   ivec3 r = (a % b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/mod_by_zero/by_identifier/scalar-vec3/u32.wgsl.expected.glsl b/test/expressions/binary/mod_by_zero/by_identifier/scalar-vec3/u32.wgsl.expected.glsl
index a4b1c80..271cddc 100644
--- a/test/expressions/binary/mod_by_zero/by_identifier/scalar-vec3/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/mod_by_zero/by_identifier/scalar-vec3/u32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uint a = 4u;
   uvec3 b = uvec3(0u, 2u, 0u);
   uvec3 r = (a % b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/mod_by_zero/by_identifier/vec3-scalar/i32.wgsl.expected.glsl b/test/expressions/binary/mod_by_zero/by_identifier/vec3-scalar/i32.wgsl.expected.glsl
index 797a0d7..c9a16dc 100644
--- a/test/expressions/binary/mod_by_zero/by_identifier/vec3-scalar/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/mod_by_zero/by_identifier/vec3-scalar/i32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   ivec3 a = ivec3(1, 2, 3);
   int b = 0;
   ivec3 r = (a % b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/mod_by_zero/by_identifier/vec3-scalar/u32.wgsl.expected.glsl b/test/expressions/binary/mod_by_zero/by_identifier/vec3-scalar/u32.wgsl.expected.glsl
index 241eab3..4f67064 100644
--- a/test/expressions/binary/mod_by_zero/by_identifier/vec3-scalar/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/mod_by_zero/by_identifier/vec3-scalar/u32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
   uint b = 0u;
   uvec3 r = (a % b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/f32.wgsl.expected.glsl b/test/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/f32.wgsl.expected.glsl
index 9a5fc61..7f4bf3f 100644
--- a/test/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/f32.wgsl.expected.glsl
+++ b/test/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/f32.wgsl.expected.glsl
@@ -3,21 +3,20 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   vec3 a = vec3(1.0f, 2.0f, 3.0f);
   vec3 b = vec3(0.0f, 5.0f, 0.0f);
   vec3 r = (a % b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:8: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type ' temp mediump 3-component vector of float' and a right operand of type ' temp mediump 3-component vector of float' (or there is no acceptable conversion)
-ERROR: 0:8: '' : compilation terminated 
+ERROR: 0:7: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type ' temp mediump 3-component vector of float' and a right operand of type ' temp mediump 3-component vector of float' (or there is no acceptable conversion)
+ERROR: 0:7: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/i32.wgsl.expected.glsl b/test/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/i32.wgsl.expected.glsl
index d7abe79..f3dbd2b 100644
--- a/test/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/i32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   ivec3 a = ivec3(1, 2, 3);
   ivec3 b = ivec3(0, 5, 0);
   ivec3 r = (a % b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/u32.wgsl.expected.glsl b/test/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/u32.wgsl.expected.glsl
index dd411f1..5b66d7f 100644
--- a/test/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/u32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
   uvec3 b = uvec3(0u, 5u, 0u);
   uvec3 r = (a % b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/mul/mat2x4-mat4x2/f32.wgsl.expected.glsl b/test/expressions/binary/mul/mat2x4-mat4x2/f32.wgsl.expected.glsl
index e37618d..b5b4e36 100644
--- a/test/expressions/binary/mul/mat2x4-mat4x2/f32.wgsl.expected.glsl
+++ b/test/expressions/binary/mul/mat2x4-mat4x2/f32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   mat2x4 a = mat2x4(vec4(1.0f, 2.0f, 3.0f, 4.0f), vec4(5.0f, 6.0f, 7.0f, 8.0f));
   mat4x2 b = mat4x2(vec2(-1.0f, -2.0f), vec2(-3.0f, -4.0f), vec2(-5.0f, -6.0f), vec2(-7.0f, -8.0f));
   mat4 r = (a * b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/mul/mat3x2-vec3/f32.wgsl.expected.glsl b/test/expressions/binary/mul/mat3x2-vec3/f32.wgsl.expected.glsl
index 16350dc..c998d8f 100644
--- a/test/expressions/binary/mul/mat3x2-vec3/f32.wgsl.expected.glsl
+++ b/test/expressions/binary/mul/mat3x2-vec3/f32.wgsl.expected.glsl
@@ -13,10 +13,9 @@
 
 void tint_symbol() {
   vec2 x = (data.matrix * data.vector);
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/expressions/binary/mul/mat3x3-mat3x3/f32.wgsl.expected.glsl b/test/expressions/binary/mul/mat3x3-mat3x3/f32.wgsl.expected.glsl
index dec5c80..4d766f4 100644
--- a/test/expressions/binary/mul/mat3x3-mat3x3/f32.wgsl.expected.glsl
+++ b/test/expressions/binary/mul/mat3x3-mat3x3/f32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   mat3 a = mat3(vec3(1.0f, 2.0f, 3.0f), vec3(4.0f, 5.0f, 6.0f), vec3(7.0f, 8.0f, 9.0f));
   mat3 b = mat3(vec3(-1.0f, -2.0f, -3.0f), vec3(-4.0f, -5.0f, -6.0f), vec3(-7.0f, -8.0f, -9.0f));
   mat3 r = (a * b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/mul/mat3x3-vec3/f32.wgsl.expected.glsl b/test/expressions/binary/mul/mat3x3-vec3/f32.wgsl.expected.glsl
index 65c991c..42cee27 100644
--- a/test/expressions/binary/mul/mat3x3-vec3/f32.wgsl.expected.glsl
+++ b/test/expressions/binary/mul/mat3x3-vec3/f32.wgsl.expected.glsl
@@ -13,10 +13,9 @@
 
 void tint_symbol() {
   vec3 x = (data.matrix * data.vector);
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/expressions/binary/mul/mat4x2-mat2x4/f32.wgsl.expected.glsl b/test/expressions/binary/mul/mat4x2-mat2x4/f32.wgsl.expected.glsl
index 92bdac6..1c8e788 100644
--- a/test/expressions/binary/mul/mat4x2-mat2x4/f32.wgsl.expected.glsl
+++ b/test/expressions/binary/mul/mat4x2-mat2x4/f32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   mat4x2 a = mat4x2(vec2(-1.0f, -2.0f), vec2(-3.0f, -4.0f), vec2(-5.0f, -6.0f), vec2(-7.0f, -8.0f));
   mat2x4 b = mat2x4(vec4(1.0f, 2.0f, 3.0f, 4.0f), vec4(5.0f, 6.0f, 7.0f, 8.0f));
   mat2 r = (a * b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/mul/scalar-scalar/f32.wgsl.expected.glsl b/test/expressions/binary/mul/scalar-scalar/f32.wgsl.expected.glsl
index 094d946..5b0cfc3 100644
--- a/test/expressions/binary/mul/scalar-scalar/f32.wgsl.expected.glsl
+++ b/test/expressions/binary/mul/scalar-scalar/f32.wgsl.expected.glsl
@@ -1,13 +1,12 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   float r = (1.0f * 2.0f);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/mul/scalar-scalar/i32.wgsl.expected.glsl b/test/expressions/binary/mul/scalar-scalar/i32.wgsl.expected.glsl
index 6fcda38..d5e721e 100644
--- a/test/expressions/binary/mul/scalar-scalar/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/mul/scalar-scalar/i32.wgsl.expected.glsl
@@ -1,13 +1,12 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   int r = (1 * 2);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/mul/scalar-scalar/u32.wgsl.expected.glsl b/test/expressions/binary/mul/scalar-scalar/u32.wgsl.expected.glsl
index 6bc6361..0eabde4 100644
--- a/test/expressions/binary/mul/scalar-scalar/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/mul/scalar-scalar/u32.wgsl.expected.glsl
@@ -1,13 +1,12 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uint r = (1u * 2u);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/mul/scalar-vec3/f32.wgsl.expected.glsl b/test/expressions/binary/mul/scalar-vec3/f32.wgsl.expected.glsl
index 1e77318..4548728 100644
--- a/test/expressions/binary/mul/scalar-vec3/f32.wgsl.expected.glsl
+++ b/test/expressions/binary/mul/scalar-vec3/f32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   float a = 4.0f;
   vec3 b = vec3(1.0f, 2.0f, 3.0f);
   vec3 r = (a * b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/mul/scalar-vec3/i32.wgsl.expected.glsl b/test/expressions/binary/mul/scalar-vec3/i32.wgsl.expected.glsl
index 9ccdf10..db11eae 100644
--- a/test/expressions/binary/mul/scalar-vec3/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/mul/scalar-vec3/i32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   int a = 4;
   ivec3 b = ivec3(1, 2, 3);
   ivec3 r = (a * b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/mul/scalar-vec3/u32.wgsl.expected.glsl b/test/expressions/binary/mul/scalar-vec3/u32.wgsl.expected.glsl
index 95d55a2..882ad1d 100644
--- a/test/expressions/binary/mul/scalar-vec3/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/mul/scalar-vec3/u32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uint a = 4u;
   uvec3 b = uvec3(1u, 2u, 3u);
   uvec3 r = (a * b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/mul/vec3-mat3x3/f32.wgsl.expected.glsl b/test/expressions/binary/mul/vec3-mat3x3/f32.wgsl.expected.glsl
index 19b9f42..200be2b 100644
--- a/test/expressions/binary/mul/vec3-mat3x3/f32.wgsl.expected.glsl
+++ b/test/expressions/binary/mul/vec3-mat3x3/f32.wgsl.expected.glsl
@@ -13,10 +13,9 @@
 
 void tint_symbol() {
   vec3 x = (data.vector * data.matrix);
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/expressions/binary/mul/vec3-mat4x3/f32.wgsl.expected.glsl b/test/expressions/binary/mul/vec3-mat4x3/f32.wgsl.expected.glsl
index 889c660..0cd32b8 100644
--- a/test/expressions/binary/mul/vec3-mat4x3/f32.wgsl.expected.glsl
+++ b/test/expressions/binary/mul/vec3-mat4x3/f32.wgsl.expected.glsl
@@ -13,10 +13,9 @@
 
 void tint_symbol() {
   vec4 x = (data.vector * data.matrix);
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/expressions/binary/mul/vec3-scalar/f32.wgsl.expected.glsl b/test/expressions/binary/mul/vec3-scalar/f32.wgsl.expected.glsl
index a96dd5b..8b4e0fc 100644
--- a/test/expressions/binary/mul/vec3-scalar/f32.wgsl.expected.glsl
+++ b/test/expressions/binary/mul/vec3-scalar/f32.wgsl.expected.glsl
@@ -1,14 +1,13 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   vec3 a = vec3(1.0f, 2.0f, 3.0f);
   vec3 r = (a * 4.0f);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/mul/vec3-scalar/i32.wgsl.expected.glsl b/test/expressions/binary/mul/vec3-scalar/i32.wgsl.expected.glsl
index 83736fb..1b37309 100644
--- a/test/expressions/binary/mul/vec3-scalar/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/mul/vec3-scalar/i32.wgsl.expected.glsl
@@ -1,14 +1,13 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   ivec3 a = ivec3(1, 2, 3);
   ivec3 r = (a * 4);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/mul/vec3-scalar/u32.wgsl.expected.glsl b/test/expressions/binary/mul/vec3-scalar/u32.wgsl.expected.glsl
index d08bd4a..b2ff4f4 100644
--- a/test/expressions/binary/mul/vec3-scalar/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/mul/vec3-scalar/u32.wgsl.expected.glsl
@@ -1,14 +1,13 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
   uvec3 r = (a * 4u);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/mul/vec3-vec3/f32.wgsl.expected.glsl b/test/expressions/binary/mul/vec3-vec3/f32.wgsl.expected.glsl
index e99d96f..19089fe 100644
--- a/test/expressions/binary/mul/vec3-vec3/f32.wgsl.expected.glsl
+++ b/test/expressions/binary/mul/vec3-vec3/f32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   vec3 a = vec3(1.0f, 2.0f, 3.0f);
   vec3 b = vec3(4.0f, 5.0f, 6.0f);
   vec3 r = (a * b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/mul/vec3-vec3/i32.wgsl.expected.glsl b/test/expressions/binary/mul/vec3-vec3/i32.wgsl.expected.glsl
index 2af834d..27771db 100644
--- a/test/expressions/binary/mul/vec3-vec3/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/mul/vec3-vec3/i32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   ivec3 a = ivec3(1, 2, 3);
   ivec3 b = ivec3(4, 5, 6);
   ivec3 r = (a * b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/mul/vec3-vec3/u32.wgsl.expected.glsl b/test/expressions/binary/mul/vec3-vec3/u32.wgsl.expected.glsl
index 889cd57..0d3ea99 100644
--- a/test/expressions/binary/mul/vec3-vec3/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/mul/vec3-vec3/u32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
   uvec3 b = uvec3(4u, 5u, 6u);
   uvec3 r = (a * b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/right-shift/scalar-scalar/i32.wgsl.expected.glsl b/test/expressions/binary/right-shift/scalar-scalar/i32.wgsl.expected.glsl
index 6d118f1..8b43a7c 100644
--- a/test/expressions/binary/right-shift/scalar-scalar/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/right-shift/scalar-scalar/i32.wgsl.expected.glsl
@@ -1,13 +1,12 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   int r = (1 >> 2u);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/right-shift/scalar-scalar/u32.wgsl.expected.glsl b/test/expressions/binary/right-shift/scalar-scalar/u32.wgsl.expected.glsl
index bd44d7d..4a2e559 100644
--- a/test/expressions/binary/right-shift/scalar-scalar/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/right-shift/scalar-scalar/u32.wgsl.expected.glsl
@@ -1,13 +1,12 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uint r = (1u >> 2u);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/right-shift/vector-vector/i32.wgsl.expected.glsl b/test/expressions/binary/right-shift/vector-vector/i32.wgsl.expected.glsl
index 1429a39..512471c 100644
--- a/test/expressions/binary/right-shift/vector-vector/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/right-shift/vector-vector/i32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   ivec3 a = ivec3(1, 2, 3);
   uvec3 b = uvec3(4u, 5u, 6u);
   ivec3 r = (a >> b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/right-shift/vector-vector/u32.wgsl.expected.glsl b/test/expressions/binary/right-shift/vector-vector/u32.wgsl.expected.glsl
index 7c63c6d..0eb8bd2 100644
--- a/test/expressions/binary/right-shift/vector-vector/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/right-shift/vector-vector/u32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
   uvec3 b = uvec3(4u, 5u, 6u);
   uvec3 r = (a >> b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/sub/mat3x3-mat3x3/f32.wgsl.expected.glsl b/test/expressions/binary/sub/mat3x3-mat3x3/f32.wgsl.expected.glsl
index 92c2f6c..2f6c878 100644
--- a/test/expressions/binary/sub/mat3x3-mat3x3/f32.wgsl.expected.glsl
+++ b/test/expressions/binary/sub/mat3x3-mat3x3/f32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   mat3 a = mat3(vec3(1.0f, 2.0f, 3.0f), vec3(4.0f, 5.0f, 6.0f), vec3(7.0f, 8.0f, 9.0f));
   mat3 b = mat3(vec3(-1.0f, -2.0f, -3.0f), vec3(-4.0f, -5.0f, -6.0f), vec3(-7.0f, -8.0f, -9.0f));
   mat3 r = (a - b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/sub/scalar-scalar/f32.wgsl.expected.glsl b/test/expressions/binary/sub/scalar-scalar/f32.wgsl.expected.glsl
index 7b84b8f..53d90c0 100644
--- a/test/expressions/binary/sub/scalar-scalar/f32.wgsl.expected.glsl
+++ b/test/expressions/binary/sub/scalar-scalar/f32.wgsl.expected.glsl
@@ -1,13 +1,12 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   float r = (1.0f - 2.0f);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/sub/scalar-scalar/i32.wgsl.expected.glsl b/test/expressions/binary/sub/scalar-scalar/i32.wgsl.expected.glsl
index f0334a1..73f08c9 100644
--- a/test/expressions/binary/sub/scalar-scalar/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/sub/scalar-scalar/i32.wgsl.expected.glsl
@@ -1,13 +1,12 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   int r = (1 - 2);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/sub/scalar-scalar/u32.wgsl.expected.glsl b/test/expressions/binary/sub/scalar-scalar/u32.wgsl.expected.glsl
index d4f1aff..65df051 100644
--- a/test/expressions/binary/sub/scalar-scalar/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/sub/scalar-scalar/u32.wgsl.expected.glsl
@@ -1,13 +1,12 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uint r = (1u - 2u);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/sub/scalar-vec3/f32.wgsl.expected.glsl b/test/expressions/binary/sub/scalar-vec3/f32.wgsl.expected.glsl
index 9e497a0..38c4ce4 100644
--- a/test/expressions/binary/sub/scalar-vec3/f32.wgsl.expected.glsl
+++ b/test/expressions/binary/sub/scalar-vec3/f32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   float a = 4.0f;
   vec3 b = vec3(1.0f, 2.0f, 3.0f);
   vec3 r = (a - b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/sub/scalar-vec3/i32.wgsl.expected.glsl b/test/expressions/binary/sub/scalar-vec3/i32.wgsl.expected.glsl
index f655d71..97f7684 100644
--- a/test/expressions/binary/sub/scalar-vec3/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/sub/scalar-vec3/i32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   int a = 4;
   ivec3 b = ivec3(1, 2, 3);
   ivec3 r = (a - b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/sub/scalar-vec3/u32.wgsl.expected.glsl b/test/expressions/binary/sub/scalar-vec3/u32.wgsl.expected.glsl
index 1474d6c..754277d 100644
--- a/test/expressions/binary/sub/scalar-vec3/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/sub/scalar-vec3/u32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uint a = 4u;
   uvec3 b = uvec3(1u, 2u, 3u);
   uvec3 r = (a - b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/sub/vec3-scalar/f32.wgsl.expected.glsl b/test/expressions/binary/sub/vec3-scalar/f32.wgsl.expected.glsl
index dbfdc78..9019a0b 100644
--- a/test/expressions/binary/sub/vec3-scalar/f32.wgsl.expected.glsl
+++ b/test/expressions/binary/sub/vec3-scalar/f32.wgsl.expected.glsl
@@ -1,14 +1,13 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   vec3 a = vec3(1.0f, 2.0f, 3.0f);
   vec3 r = (a - 4.0f);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/sub/vec3-scalar/i32.wgsl.expected.glsl b/test/expressions/binary/sub/vec3-scalar/i32.wgsl.expected.glsl
index 1d34062..49f7efe 100644
--- a/test/expressions/binary/sub/vec3-scalar/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/sub/vec3-scalar/i32.wgsl.expected.glsl
@@ -1,14 +1,13 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   ivec3 a = ivec3(1, 2, 3);
   ivec3 r = (a - 4);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/sub/vec3-scalar/u32.wgsl.expected.glsl b/test/expressions/binary/sub/vec3-scalar/u32.wgsl.expected.glsl
index 35eed7d..5d045e5 100644
--- a/test/expressions/binary/sub/vec3-scalar/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/sub/vec3-scalar/u32.wgsl.expected.glsl
@@ -1,14 +1,13 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
   uvec3 r = (a - 4u);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/sub/vec3-vec3/f32.wgsl.expected.glsl b/test/expressions/binary/sub/vec3-vec3/f32.wgsl.expected.glsl
index 2f73e34..00c7356 100644
--- a/test/expressions/binary/sub/vec3-vec3/f32.wgsl.expected.glsl
+++ b/test/expressions/binary/sub/vec3-vec3/f32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   vec3 a = vec3(1.0f, 2.0f, 3.0f);
   vec3 b = vec3(4.0f, 5.0f, 6.0f);
   vec3 r = (a - b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/sub/vec3-vec3/i32.wgsl.expected.glsl b/test/expressions/binary/sub/vec3-vec3/i32.wgsl.expected.glsl
index 8869edf..87d13ea 100644
--- a/test/expressions/binary/sub/vec3-vec3/i32.wgsl.expected.glsl
+++ b/test/expressions/binary/sub/vec3-vec3/i32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   ivec3 a = ivec3(1, 2, 3);
   ivec3 b = ivec3(4, 5, 6);
   ivec3 r = (a - b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/binary/sub/vec3-vec3/u32.wgsl.expected.glsl b/test/expressions/binary/sub/vec3-vec3/u32.wgsl.expected.glsl
index 64053c8..5616946 100644
--- a/test/expressions/binary/sub/vec3-vec3/u32.wgsl.expected.glsl
+++ b/test/expressions/binary/sub/vec3-vec3/u32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
   uvec3 b = uvec3(4u, 5u, 6u);
   uvec3 r = (a - b);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/bitcast/scalar/f32-f32.wgsl.expected.glsl b/test/expressions/bitcast/scalar/f32-f32.wgsl.expected.glsl
index 16f1b89..9fdde49 100644
--- a/test/expressions/bitcast/scalar/f32-f32.wgsl.expected.glsl
+++ b/test/expressions/bitcast/scalar/f32-f32.wgsl.expected.glsl
@@ -1,13 +1,12 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   float b = 1.0f;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/bitcast/scalar/f32-i32.wgsl.expected.glsl b/test/expressions/bitcast/scalar/f32-i32.wgsl.expected.glsl
index 2b27534..e062527 100644
--- a/test/expressions/bitcast/scalar/f32-i32.wgsl.expected.glsl
+++ b/test/expressions/bitcast/scalar/f32-i32.wgsl.expected.glsl
@@ -1,13 +1,12 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   int b = floatBitsToInt(1.0f);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/bitcast/scalar/f32-u32.wgsl.expected.glsl b/test/expressions/bitcast/scalar/f32-u32.wgsl.expected.glsl
index e73f2a1..d2cfdb1 100644
--- a/test/expressions/bitcast/scalar/f32-u32.wgsl.expected.glsl
+++ b/test/expressions/bitcast/scalar/f32-u32.wgsl.expected.glsl
@@ -1,13 +1,12 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uint b = floatBitsToUint(1.0f);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/bitcast/scalar/i32-f32.wgsl.expected.glsl b/test/expressions/bitcast/scalar/i32-f32.wgsl.expected.glsl
index 1dc97ed..0076384 100644
--- a/test/expressions/bitcast/scalar/i32-f32.wgsl.expected.glsl
+++ b/test/expressions/bitcast/scalar/i32-f32.wgsl.expected.glsl
@@ -1,13 +1,12 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   float b = intBitsToFloat(1);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/bitcast/scalar/i32-i32.wgsl.expected.glsl b/test/expressions/bitcast/scalar/i32-i32.wgsl.expected.glsl
index 5b18f96..d0566e5 100644
--- a/test/expressions/bitcast/scalar/i32-i32.wgsl.expected.glsl
+++ b/test/expressions/bitcast/scalar/i32-i32.wgsl.expected.glsl
@@ -1,13 +1,12 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   int b = 1;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/bitcast/scalar/i32-u32.wgsl.expected.glsl b/test/expressions/bitcast/scalar/i32-u32.wgsl.expected.glsl
index d17ef1b..de9c43d 100644
--- a/test/expressions/bitcast/scalar/i32-u32.wgsl.expected.glsl
+++ b/test/expressions/bitcast/scalar/i32-u32.wgsl.expected.glsl
@@ -1,13 +1,12 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uint b = uint(1);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/bitcast/scalar/i32min-u32.wgsl.expected.glsl b/test/expressions/bitcast/scalar/i32min-u32.wgsl.expected.glsl
index fe0dbfb..4b25ee9 100644
--- a/test/expressions/bitcast/scalar/i32min-u32.wgsl.expected.glsl
+++ b/test/expressions/bitcast/scalar/i32min-u32.wgsl.expected.glsl
@@ -1,13 +1,12 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uint b = uint(-2147483648);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/bitcast/scalar/u32-f32.wgsl.expected.glsl b/test/expressions/bitcast/scalar/u32-f32.wgsl.expected.glsl
index 35a3458..cc7e675 100644
--- a/test/expressions/bitcast/scalar/u32-f32.wgsl.expected.glsl
+++ b/test/expressions/bitcast/scalar/u32-f32.wgsl.expected.glsl
@@ -1,13 +1,12 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   float b = uintBitsToFloat(1u);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/bitcast/scalar/u32-i32.wgsl.expected.glsl b/test/expressions/bitcast/scalar/u32-i32.wgsl.expected.glsl
index 8a04668..506bd4a 100644
--- a/test/expressions/bitcast/scalar/u32-i32.wgsl.expected.glsl
+++ b/test/expressions/bitcast/scalar/u32-i32.wgsl.expected.glsl
@@ -1,13 +1,12 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   int b = int(1u);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/bitcast/scalar/u32-u32.wgsl.expected.glsl b/test/expressions/bitcast/scalar/u32-u32.wgsl.expected.glsl
index 2e0049a..f99a671 100644
--- a/test/expressions/bitcast/scalar/u32-u32.wgsl.expected.glsl
+++ b/test/expressions/bitcast/scalar/u32-u32.wgsl.expected.glsl
@@ -1,13 +1,12 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uint b = 1u;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/bitcast/vector/f32-f32.wgsl.expected.glsl b/test/expressions/bitcast/vector/f32-f32.wgsl.expected.glsl
index 79506a2..a6bb513 100644
--- a/test/expressions/bitcast/vector/f32-f32.wgsl.expected.glsl
+++ b/test/expressions/bitcast/vector/f32-f32.wgsl.expected.glsl
@@ -1,14 +1,13 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   vec3 a = vec3(1.0f, 2.0f, 3.0f);
   vec3 b = a;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/bitcast/vector/f32-i32.wgsl.expected.glsl b/test/expressions/bitcast/vector/f32-i32.wgsl.expected.glsl
index 8905d2c..1c3d70e 100644
--- a/test/expressions/bitcast/vector/f32-i32.wgsl.expected.glsl
+++ b/test/expressions/bitcast/vector/f32-i32.wgsl.expected.glsl
@@ -1,14 +1,13 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   vec3 a = vec3(1.0f, 2.0f, 3.0f);
   ivec3 b = floatBitsToInt(a);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/bitcast/vector/f32-u32.wgsl.expected.glsl b/test/expressions/bitcast/vector/f32-u32.wgsl.expected.glsl
index 3df55ec..38310cf 100644
--- a/test/expressions/bitcast/vector/f32-u32.wgsl.expected.glsl
+++ b/test/expressions/bitcast/vector/f32-u32.wgsl.expected.glsl
@@ -1,14 +1,13 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   vec3 a = vec3(1.0f, 2.0f, 3.0f);
   uvec3 b = floatBitsToUint(a);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/bitcast/vector/i32-f32.wgsl.expected.glsl b/test/expressions/bitcast/vector/i32-f32.wgsl.expected.glsl
index 7b652bf..2482e5e 100644
--- a/test/expressions/bitcast/vector/i32-f32.wgsl.expected.glsl
+++ b/test/expressions/bitcast/vector/i32-f32.wgsl.expected.glsl
@@ -1,14 +1,13 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   ivec3 a = ivec3(1, 2, 3);
   vec3 b = intBitsToFloat(a);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/bitcast/vector/i32-i32.wgsl.expected.glsl b/test/expressions/bitcast/vector/i32-i32.wgsl.expected.glsl
index 1c28025..614e64a 100644
--- a/test/expressions/bitcast/vector/i32-i32.wgsl.expected.glsl
+++ b/test/expressions/bitcast/vector/i32-i32.wgsl.expected.glsl
@@ -1,14 +1,13 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   ivec3 a = ivec3(1, 2, 3);
   ivec3 b = a;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/bitcast/vector/i32-u32.wgsl.expected.glsl b/test/expressions/bitcast/vector/i32-u32.wgsl.expected.glsl
index 9115f4a..9b3a5cc 100644
--- a/test/expressions/bitcast/vector/i32-u32.wgsl.expected.glsl
+++ b/test/expressions/bitcast/vector/i32-u32.wgsl.expected.glsl
@@ -1,14 +1,13 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   ivec3 a = ivec3(1, 2, 3);
   uvec3 b = uvec3(a);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/bitcast/vector/u32-f32.wgsl.expected.glsl b/test/expressions/bitcast/vector/u32-f32.wgsl.expected.glsl
index 9d1ac80..cca9ce9 100644
--- a/test/expressions/bitcast/vector/u32-f32.wgsl.expected.glsl
+++ b/test/expressions/bitcast/vector/u32-f32.wgsl.expected.glsl
@@ -1,14 +1,13 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
   vec3 b = uintBitsToFloat(a);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/bitcast/vector/u32-i32.wgsl.expected.glsl b/test/expressions/bitcast/vector/u32-i32.wgsl.expected.glsl
index fec2255..8f69093 100644
--- a/test/expressions/bitcast/vector/u32-i32.wgsl.expected.glsl
+++ b/test/expressions/bitcast/vector/u32-i32.wgsl.expected.glsl
@@ -1,14 +1,13 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
   ivec3 b = ivec3(a);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/bitcast/vector/u32-u32.wgsl.expected.glsl b/test/expressions/bitcast/vector/u32-u32.wgsl.expected.glsl
index da18fc0..a8fd047 100644
--- a/test/expressions/bitcast/vector/u32-u32.wgsl.expected.glsl
+++ b/test/expressions/bitcast/vector/u32-u32.wgsl.expected.glsl
@@ -1,14 +1,13 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   uvec3 a = uvec3(1u, 2u, 3u);
   uvec3 b = a;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/expressions/index/let/let/literal/array.wgsl.expected.glsl b/test/expressions/index/let/let/literal/array.wgsl.expected.glsl
index 2225238..2c57161 100644
--- a/test/expressions/index/let/let/literal/array.wgsl.expected.glsl
+++ b/test/expressions/index/let/let/literal/array.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 int f() {
   int a[8] = int[8](1, 2, 3, 4, 5, 6, 7, 8);
   return a[1];
diff --git a/test/expressions/index/let/let/literal/matrix.wgsl.expected.glsl b/test/expressions/index/let/let/literal/matrix.wgsl.expected.glsl
index a0ebffd..c3c6f83 100644
--- a/test/expressions/index/let/let/literal/matrix.wgsl.expected.glsl
+++ b/test/expressions/index/let/let/literal/matrix.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 vec3 f() {
   mat3 m = mat3(1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f);
   return m[1];
diff --git a/test/expressions/index/let/let/literal/vector.wgsl.expected.glsl b/test/expressions/index/let/let/literal/vector.wgsl.expected.glsl
index 5d98a76..42517d3 100644
--- a/test/expressions/index/let/let/literal/vector.wgsl.expected.glsl
+++ b/test/expressions/index/let/let/literal/vector.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 float f() {
   vec3 v = vec3(1.0f, 2.0f, 3.0f);
   return v[1];
diff --git a/test/expressions/index/let/let/param/array.wgsl.expected.glsl b/test/expressions/index/let/let/param/array.wgsl.expected.glsl
index 88547d5..831e77b 100644
--- a/test/expressions/index/let/let/param/array.wgsl.expected.glsl
+++ b/test/expressions/index/let/let/param/array.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 int f(int x) {
   int a[8] = int[8](1, 2, 3, 4, 5, 6, 7, 8);
   return a[x];
diff --git a/test/expressions/index/let/let/param/matrix.wgsl.expected.glsl b/test/expressions/index/let/let/param/matrix.wgsl.expected.glsl
index 32e6a8b..e922171 100644
--- a/test/expressions/index/let/let/param/matrix.wgsl.expected.glsl
+++ b/test/expressions/index/let/let/param/matrix.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 vec3 f(int x) {
   mat3 m = mat3(1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f);
   return m[x];
diff --git a/test/expressions/index/let/let/param/vector.wgsl.expected.glsl b/test/expressions/index/let/let/param/vector.wgsl.expected.glsl
index cad5646..3f437d3 100644
--- a/test/expressions/index/let/let/param/vector.wgsl.expected.glsl
+++ b/test/expressions/index/let/let/param/vector.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 float f(int x) {
   vec3 v = vec3(1.0f, 2.0f, 3.0f);
   return v[x];
diff --git a/test/expressions/index/let/literal/array.wgsl.expected.glsl b/test/expressions/index/let/literal/array.wgsl.expected.glsl
index 2225238..2c57161 100644
--- a/test/expressions/index/let/literal/array.wgsl.expected.glsl
+++ b/test/expressions/index/let/literal/array.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 int f() {
   int a[8] = int[8](1, 2, 3, 4, 5, 6, 7, 8);
   return a[1];
diff --git a/test/expressions/index/let/literal/matrix.wgsl.expected.glsl b/test/expressions/index/let/literal/matrix.wgsl.expected.glsl
index a0ebffd..c3c6f83 100644
--- a/test/expressions/index/let/literal/matrix.wgsl.expected.glsl
+++ b/test/expressions/index/let/literal/matrix.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 vec3 f() {
   mat3 m = mat3(1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f);
   return m[1];
diff --git a/test/expressions/index/let/literal/vector.wgsl.expected.glsl b/test/expressions/index/let/literal/vector.wgsl.expected.glsl
index 5d98a76..42517d3 100644
--- a/test/expressions/index/let/literal/vector.wgsl.expected.glsl
+++ b/test/expressions/index/let/literal/vector.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 float f() {
   vec3 v = vec3(1.0f, 2.0f, 3.0f);
   return v[1];
diff --git a/test/expressions/index/let/param/array.wgsl.expected.glsl b/test/expressions/index/let/param/array.wgsl.expected.glsl
index 17f4054..9b9cb7a 100644
--- a/test/expressions/index/let/param/array.wgsl.expected.glsl
+++ b/test/expressions/index/let/param/array.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 int f(int i) {
   int a[8] = int[8](1, 2, 3, 4, 5, 6, 7, 8);
   return a[i];
diff --git a/test/expressions/index/let/param/matrix.wgsl.expected.glsl b/test/expressions/index/let/param/matrix.wgsl.expected.glsl
index e150094..56877ba 100644
--- a/test/expressions/index/let/param/matrix.wgsl.expected.glsl
+++ b/test/expressions/index/let/param/matrix.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 vec3 f(int i) {
   mat3 m = mat3(1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f);
   return m[i];
diff --git a/test/expressions/index/let/param/vector.wgsl.expected.glsl b/test/expressions/index/let/param/vector.wgsl.expected.glsl
index e4da58c..82f3ce9 100644
--- a/test/expressions/index/let/param/vector.wgsl.expected.glsl
+++ b/test/expressions/index/let/param/vector.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 float f(int i) {
   vec3 v = vec3(1.0f, 2.0f, 3.0f);
   return v[i];
diff --git a/test/expressions/index/let/var/literal/array.wgsl.expected.glsl b/test/expressions/index/let/var/literal/array.wgsl.expected.glsl
index 2225238..2c57161 100644
--- a/test/expressions/index/let/var/literal/array.wgsl.expected.glsl
+++ b/test/expressions/index/let/var/literal/array.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 int f() {
   int a[8] = int[8](1, 2, 3, 4, 5, 6, 7, 8);
   return a[1];
diff --git a/test/expressions/index/let/var/literal/matrix.wgsl.expected.glsl b/test/expressions/index/let/var/literal/matrix.wgsl.expected.glsl
index a0ebffd..c3c6f83 100644
--- a/test/expressions/index/let/var/literal/matrix.wgsl.expected.glsl
+++ b/test/expressions/index/let/var/literal/matrix.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 vec3 f() {
   mat3 m = mat3(1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f);
   return m[1];
diff --git a/test/expressions/index/let/var/literal/vector.wgsl.expected.glsl b/test/expressions/index/let/var/literal/vector.wgsl.expected.glsl
index 5d98a76..42517d3 100644
--- a/test/expressions/index/let/var/literal/vector.wgsl.expected.glsl
+++ b/test/expressions/index/let/var/literal/vector.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 float f() {
   vec3 v = vec3(1.0f, 2.0f, 3.0f);
   return v[1];
diff --git a/test/expressions/index/var/let/literal/array.wgsl.expected.glsl b/test/expressions/index/var/let/literal/array.wgsl.expected.glsl
index 2225238..2c57161 100644
--- a/test/expressions/index/var/let/literal/array.wgsl.expected.glsl
+++ b/test/expressions/index/var/let/literal/array.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 int f() {
   int a[8] = int[8](1, 2, 3, 4, 5, 6, 7, 8);
   return a[1];
diff --git a/test/expressions/index/var/let/literal/matrix.wgsl.expected.glsl b/test/expressions/index/var/let/literal/matrix.wgsl.expected.glsl
index a0ebffd..c3c6f83 100644
--- a/test/expressions/index/var/let/literal/matrix.wgsl.expected.glsl
+++ b/test/expressions/index/var/let/literal/matrix.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 vec3 f() {
   mat3 m = mat3(1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f);
   return m[1];
diff --git a/test/expressions/index/var/let/literal/vector.wgsl.expected.glsl b/test/expressions/index/var/let/literal/vector.wgsl.expected.glsl
index 5d98a76..42517d3 100644
--- a/test/expressions/index/var/let/literal/vector.wgsl.expected.glsl
+++ b/test/expressions/index/var/let/literal/vector.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 float f() {
   vec3 v = vec3(1.0f, 2.0f, 3.0f);
   return v[1];
diff --git a/test/expressions/index/var/let/param/array.wgsl.expected.glsl b/test/expressions/index/var/let/param/array.wgsl.expected.glsl
index 88547d5..831e77b 100644
--- a/test/expressions/index/var/let/param/array.wgsl.expected.glsl
+++ b/test/expressions/index/var/let/param/array.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 int f(int x) {
   int a[8] = int[8](1, 2, 3, 4, 5, 6, 7, 8);
   return a[x];
diff --git a/test/expressions/index/var/let/param/matrix.wgsl.expected.glsl b/test/expressions/index/var/let/param/matrix.wgsl.expected.glsl
index 32e6a8b..e922171 100644
--- a/test/expressions/index/var/let/param/matrix.wgsl.expected.glsl
+++ b/test/expressions/index/var/let/param/matrix.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 vec3 f(int x) {
   mat3 m = mat3(1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f);
   return m[x];
diff --git a/test/expressions/index/var/let/param/vector.wgsl.expected.glsl b/test/expressions/index/var/let/param/vector.wgsl.expected.glsl
index cad5646..3f437d3 100644
--- a/test/expressions/index/var/let/param/vector.wgsl.expected.glsl
+++ b/test/expressions/index/var/let/param/vector.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 float f(int x) {
   vec3 v = vec3(1.0f, 2.0f, 3.0f);
   return v[x];
diff --git a/test/expressions/index/var/literal/array.wgsl.expected.glsl b/test/expressions/index/var/literal/array.wgsl.expected.glsl
index 2225238..2c57161 100644
--- a/test/expressions/index/var/literal/array.wgsl.expected.glsl
+++ b/test/expressions/index/var/literal/array.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 int f() {
   int a[8] = int[8](1, 2, 3, 4, 5, 6, 7, 8);
   return a[1];
diff --git a/test/expressions/index/var/literal/matrix.wgsl.expected.glsl b/test/expressions/index/var/literal/matrix.wgsl.expected.glsl
index a0ebffd..c3c6f83 100644
--- a/test/expressions/index/var/literal/matrix.wgsl.expected.glsl
+++ b/test/expressions/index/var/literal/matrix.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 vec3 f() {
   mat3 m = mat3(1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f);
   return m[1];
diff --git a/test/expressions/index/var/literal/vector.wgsl.expected.glsl b/test/expressions/index/var/literal/vector.wgsl.expected.glsl
index 5d98a76..42517d3 100644
--- a/test/expressions/index/var/literal/vector.wgsl.expected.glsl
+++ b/test/expressions/index/var/literal/vector.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 float f() {
   vec3 v = vec3(1.0f, 2.0f, 3.0f);
   return v[1];
diff --git a/test/expressions/index/var/param/array.wgsl.expected.glsl b/test/expressions/index/var/param/array.wgsl.expected.glsl
index 17f4054..9b9cb7a 100644
--- a/test/expressions/index/var/param/array.wgsl.expected.glsl
+++ b/test/expressions/index/var/param/array.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 int f(int i) {
   int a[8] = int[8](1, 2, 3, 4, 5, 6, 7, 8);
   return a[i];
diff --git a/test/expressions/index/var/param/matrix.wgsl.expected.glsl b/test/expressions/index/var/param/matrix.wgsl.expected.glsl
index e150094..56877ba 100644
--- a/test/expressions/index/var/param/matrix.wgsl.expected.glsl
+++ b/test/expressions/index/var/param/matrix.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 vec3 f(int i) {
   mat3 m = mat3(1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f);
   return m[i];
diff --git a/test/expressions/index/var/param/vector.wgsl.expected.glsl b/test/expressions/index/var/param/vector.wgsl.expected.glsl
index e4da58c..82f3ce9 100644
--- a/test/expressions/index/var/param/vector.wgsl.expected.glsl
+++ b/test/expressions/index/var/param/vector.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 float f(int i) {
   vec3 v = vec3(1.0f, 2.0f, 3.0f);
   return v[i];
diff --git a/test/expressions/literals/-inf.spvasm.expected.glsl b/test/expressions/literals/-inf.spvasm.expected.glsl
index 78232f1..e1caa54 100644
--- a/test/expressions/literals/-inf.spvasm.expected.glsl
+++ b/test/expressions/literals/-inf.spvasm.expected.glsl
@@ -1,6 +1,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 out_var_SV_TARGET_1_1;
 vec4 out_var_SV_TARGET = vec4(0.0f, 0.0f, 0.0f, 0.0f);
 void main_1() {
   out_var_SV_TARGET = vec4(uintBitsToFloat(0xff800000u), uintBitsToFloat(0xff800000u), uintBitsToFloat(0xff800000u), uintBitsToFloat(0xff800000u));
@@ -11,27 +12,14 @@
   vec4 out_var_SV_TARGET_1;
 };
 
-struct tint_symbol_1 {
-  vec4 out_var_SV_TARGET_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(out_var_SV_TARGET);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(out_var_SV_TARGET);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.out_var_SV_TARGET_1 = inner_result.out_var_SV_TARGET_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 out_var_SV_TARGET_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  out_var_SV_TARGET_1 = outputs.out_var_SV_TARGET_1;
+  main_out inner_result = tint_symbol();
+  out_var_SV_TARGET_1_1 = inner_result.out_var_SV_TARGET_1;
+  return;
 }
-
diff --git a/test/expressions/literals/inf.spvasm.expected.glsl b/test/expressions/literals/inf.spvasm.expected.glsl
index 022c655..637b87c 100644
--- a/test/expressions/literals/inf.spvasm.expected.glsl
+++ b/test/expressions/literals/inf.spvasm.expected.glsl
@@ -1,6 +1,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 out_var_SV_TARGET_1_1;
 vec4 out_var_SV_TARGET = vec4(0.0f, 0.0f, 0.0f, 0.0f);
 void main_1() {
   out_var_SV_TARGET = vec4(uintBitsToFloat(0x7f800000u), uintBitsToFloat(0x7f800000u), uintBitsToFloat(0x7f800000u), uintBitsToFloat(0x7f800000u));
@@ -11,27 +12,14 @@
   vec4 out_var_SV_TARGET_1;
 };
 
-struct tint_symbol_1 {
-  vec4 out_var_SV_TARGET_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(out_var_SV_TARGET);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(out_var_SV_TARGET);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.out_var_SV_TARGET_1 = inner_result.out_var_SV_TARGET_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 out_var_SV_TARGET_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  out_var_SV_TARGET_1 = outputs.out_var_SV_TARGET_1;
+  main_out inner_result = tint_symbol();
+  out_var_SV_TARGET_1_1 = inner_result.out_var_SV_TARGET_1;
+  return;
 }
-
diff --git a/test/expressions/literals/intmin.wgsl.expected.glsl b/test/expressions/literals/intmin.wgsl.expected.glsl
index 89d8f8f..b7eb43a 100644
--- a/test/expressions/literals/intmin.wgsl.expected.glsl
+++ b/test/expressions/literals/intmin.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 int add_int_min_explicit() {
   int a = -2147483648;
   int b = (a + 1);
diff --git a/test/expressions/literals/nan.spvasm.expected.glsl b/test/expressions/literals/nan.spvasm.expected.glsl
index 96d9709..c78cc6f 100644
--- a/test/expressions/literals/nan.spvasm.expected.glsl
+++ b/test/expressions/literals/nan.spvasm.expected.glsl
@@ -1,6 +1,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 out_var_SV_TARGET_1_1;
 vec4 out_var_SV_TARGET = vec4(0.0f, 0.0f, 0.0f, 0.0f);
 void main_1() {
   out_var_SV_TARGET = vec4(uintBitsToFloat(0x7fc00000u), uintBitsToFloat(0x7fc00000u), uintBitsToFloat(0x7fc00000u), uintBitsToFloat(0x7fc00000u));
@@ -11,27 +12,14 @@
   vec4 out_var_SV_TARGET_1;
 };
 
-struct tint_symbol_1 {
-  vec4 out_var_SV_TARGET_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(out_var_SV_TARGET);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(out_var_SV_TARGET);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.out_var_SV_TARGET_1 = inner_result.out_var_SV_TARGET_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 out_var_SV_TARGET_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  out_var_SV_TARGET_1 = outputs.out_var_SV_TARGET_1;
+  main_out inner_result = tint_symbol();
+  out_var_SV_TARGET_1_1 = inner_result.out_var_SV_TARGET_1;
+  return;
 }
-
diff --git a/test/expressions/splat/call/bool.wgsl.expected.glsl b/test/expressions/splat/call/bool.wgsl.expected.glsl
index 02056af..16633fe 100644
--- a/test/expressions/splat/call/bool.wgsl.expected.glsl
+++ b/test/expressions/splat/call/bool.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 bool get_bool() {
   return true;
 }
diff --git a/test/expressions/splat/call/f32.wgsl.expected.glsl b/test/expressions/splat/call/f32.wgsl.expected.glsl
index 3bd3b4d..dc1186c 100644
--- a/test/expressions/splat/call/f32.wgsl.expected.glsl
+++ b/test/expressions/splat/call/f32.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 float get_f32() {
   return 1.0f;
 }
diff --git a/test/expressions/splat/call/i32.wgsl.expected.glsl b/test/expressions/splat/call/i32.wgsl.expected.glsl
index 03c2a0c..02f78de 100644
--- a/test/expressions/splat/call/i32.wgsl.expected.glsl
+++ b/test/expressions/splat/call/i32.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 int get_i32() {
   return 1;
 }
diff --git a/test/expressions/splat/call/u32.wgsl.expected.glsl b/test/expressions/splat/call/u32.wgsl.expected.glsl
index 62f5fe2..90eda55 100644
--- a/test/expressions/splat/call/u32.wgsl.expected.glsl
+++ b/test/expressions/splat/call/u32.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 uint get_u32() {
   return 1u;
 }
diff --git a/test/expressions/splat/expression/bool.wgsl.expected.glsl b/test/expressions/splat/expression/bool.wgsl.expected.glsl
index d9c81de..ca80c8a 100644
--- a/test/expressions/splat/expression/bool.wgsl.expected.glsl
+++ b/test/expressions/splat/expression/bool.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   bool tint_tmp = true;
   if (!tint_tmp) {
diff --git a/test/expressions/splat/expression/f32.wgsl.expected.glsl b/test/expressions/splat/expression/f32.wgsl.expected.glsl
index 3facaa3..d2bb8bc 100644
--- a/test/expressions/splat/expression/f32.wgsl.expected.glsl
+++ b/test/expressions/splat/expression/f32.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   vec2 v2 = vec2((1.0f + 2.0f));
   vec3 v3 = vec3((1.0f + 2.0f));
diff --git a/test/expressions/splat/expression/i32.wgsl.expected.glsl b/test/expressions/splat/expression/i32.wgsl.expected.glsl
index cf07c63..82a2959 100644
--- a/test/expressions/splat/expression/i32.wgsl.expected.glsl
+++ b/test/expressions/splat/expression/i32.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   ivec2 v2 = ivec2((1 + 2));
   ivec3 v3 = ivec3((1 + 2));
diff --git a/test/expressions/splat/expression/u32.wgsl.expected.glsl b/test/expressions/splat/expression/u32.wgsl.expected.glsl
index 2b80e5f..8e05244 100644
--- a/test/expressions/splat/expression/u32.wgsl.expected.glsl
+++ b/test/expressions/splat/expression/u32.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   uvec2 v2 = uvec2((1u + 2u));
   uvec3 v3 = uvec3((1u + 2u));
diff --git a/test/expressions/splat/immediate/bool.wgsl.expected.glsl b/test/expressions/splat/immediate/bool.wgsl.expected.glsl
index fb64865..0ec75bc 100644
--- a/test/expressions/splat/immediate/bool.wgsl.expected.glsl
+++ b/test/expressions/splat/immediate/bool.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   bvec2 v2 = bvec2(true);
   bvec3 v3 = bvec3(true);
diff --git a/test/expressions/splat/immediate/f32.wgsl.expected.glsl b/test/expressions/splat/immediate/f32.wgsl.expected.glsl
index e5bd309..7012845 100644
--- a/test/expressions/splat/immediate/f32.wgsl.expected.glsl
+++ b/test/expressions/splat/immediate/f32.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   vec2 v2 = vec2(1.0f);
   vec3 v3 = vec3(1.0f);
diff --git a/test/expressions/splat/immediate/i32.wgsl.expected.glsl b/test/expressions/splat/immediate/i32.wgsl.expected.glsl
index a693e22..2e4a6a5 100644
--- a/test/expressions/splat/immediate/i32.wgsl.expected.glsl
+++ b/test/expressions/splat/immediate/i32.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   ivec2 v2 = ivec2(1);
   ivec3 v3 = ivec3(1);
diff --git a/test/expressions/splat/immediate/u32.wgsl.expected.glsl b/test/expressions/splat/immediate/u32.wgsl.expected.glsl
index b0a88ab..3c529d1 100644
--- a/test/expressions/splat/immediate/u32.wgsl.expected.glsl
+++ b/test/expressions/splat/immediate/u32.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   uvec2 v2 = uvec2(1u);
   uvec3 v3 = uvec3(1u);
diff --git a/test/expressions/splat/var/bool.wgsl.expected.glsl b/test/expressions/splat/var/bool.wgsl.expected.glsl
index e0488a1..924011b 100644
--- a/test/expressions/splat/var/bool.wgsl.expected.glsl
+++ b/test/expressions/splat/var/bool.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   bool tint_tmp = true;
   if (!tint_tmp) {
diff --git a/test/expressions/splat/var/f32.wgsl.expected.glsl b/test/expressions/splat/var/f32.wgsl.expected.glsl
index 92b82c8..40b8340 100644
--- a/test/expressions/splat/var/f32.wgsl.expected.glsl
+++ b/test/expressions/splat/var/f32.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   float v = (1.0f + 2.0f);
   vec2 v2 = vec2(v);
diff --git a/test/expressions/splat/var/i32.wgsl.expected.glsl b/test/expressions/splat/var/i32.wgsl.expected.glsl
index e55c53b..faa5409 100644
--- a/test/expressions/splat/var/i32.wgsl.expected.glsl
+++ b/test/expressions/splat/var/i32.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   int v = (1 + 2);
   ivec2 v2 = ivec2(v);
diff --git a/test/expressions/splat/var/u32.wgsl.expected.glsl b/test/expressions/splat/var/u32.wgsl.expected.glsl
index 5b0bdfd..3d0927b 100644
--- a/test/expressions/splat/var/u32.wgsl.expected.glsl
+++ b/test/expressions/splat/var/u32.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   uint v = (1u + 2u);
   uvec2 v2 = uvec2(v);
diff --git a/test/expressions/splat/with_swizzle/f32.wgsl.expected.glsl b/test/expressions/splat/with_swizzle/f32.wgsl.expected.glsl
index 6bfa65d..db23e58 100644
--- a/test/expressions/splat/with_swizzle/f32.wgsl.expected.glsl
+++ b/test/expressions/splat/with_swizzle/f32.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   float a = vec2(1.0f).y;
   float b = vec3(1.0f).z;
diff --git a/test/expressions/swizzle/read/packed_vec3/f32.wgsl.expected.glsl b/test/expressions/swizzle/read/packed_vec3/f32.wgsl.expected.glsl
index 7d88333..eb59c12 100644
--- a/test/expressions/swizzle/read/packed_vec3/f32.wgsl.expected.glsl
+++ b/test/expressions/swizzle/read/packed_vec3/f32.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 struct S {
   vec3 v;
 };
diff --git a/test/expressions/swizzle/read/packed_vec3/i32.wgsl.expected.glsl b/test/expressions/swizzle/read/packed_vec3/i32.wgsl.expected.glsl
index 2f1d6f3..8454ca3 100644
--- a/test/expressions/swizzle/read/packed_vec3/i32.wgsl.expected.glsl
+++ b/test/expressions/swizzle/read/packed_vec3/i32.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 struct S {
   ivec3 v;
 };
diff --git a/test/expressions/swizzle/read/packed_vec3/u32.wgsl.expected.glsl b/test/expressions/swizzle/read/packed_vec3/u32.wgsl.expected.glsl
index b26c59b..ce95fc9 100644
--- a/test/expressions/swizzle/read/packed_vec3/u32.wgsl.expected.glsl
+++ b/test/expressions/swizzle/read/packed_vec3/u32.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 struct S {
   uvec3 v;
 };
diff --git a/test/expressions/swizzle/read/vec3/f32.wgsl.expected.glsl b/test/expressions/swizzle/read/vec3/f32.wgsl.expected.glsl
index b4a8307..5f295d0 100644
--- a/test/expressions/swizzle/read/vec3/f32.wgsl.expected.glsl
+++ b/test/expressions/swizzle/read/vec3/f32.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 struct S {
   vec3 v;
 };
diff --git a/test/expressions/swizzle/read/vec3/i32.wgsl.expected.glsl b/test/expressions/swizzle/read/vec3/i32.wgsl.expected.glsl
index 9418255..9f30906 100644
--- a/test/expressions/swizzle/read/vec3/i32.wgsl.expected.glsl
+++ b/test/expressions/swizzle/read/vec3/i32.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 struct S {
   ivec3 v;
 };
diff --git a/test/expressions/swizzle/read/vec3/u32.wgsl.expected.glsl b/test/expressions/swizzle/read/vec3/u32.wgsl.expected.glsl
index 6b8eddc..fa3357d 100644
--- a/test/expressions/swizzle/read/vec3/u32.wgsl.expected.glsl
+++ b/test/expressions/swizzle/read/vec3/u32.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 struct S {
   uvec3 v;
 };
diff --git a/test/expressions/swizzle/write/packed_vec3/f32.wgsl.expected.glsl b/test/expressions/swizzle/write/packed_vec3/f32.wgsl.expected.glsl
index 4aa813a..b04cc88 100644
--- a/test/expressions/swizzle/write/packed_vec3/f32.wgsl.expected.glsl
+++ b/test/expressions/swizzle/write/packed_vec3/f32.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 struct S {
   vec3 v;
 };
diff --git a/test/expressions/swizzle/write/packed_vec3/i32.wgsl.expected.glsl b/test/expressions/swizzle/write/packed_vec3/i32.wgsl.expected.glsl
index 8eafeb8..b50dd2e 100644
--- a/test/expressions/swizzle/write/packed_vec3/i32.wgsl.expected.glsl
+++ b/test/expressions/swizzle/write/packed_vec3/i32.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 struct S {
   ivec3 v;
 };
diff --git a/test/expressions/swizzle/write/packed_vec3/u32.wgsl.expected.glsl b/test/expressions/swizzle/write/packed_vec3/u32.wgsl.expected.glsl
index 741633c..6a8666c 100644
--- a/test/expressions/swizzle/write/packed_vec3/u32.wgsl.expected.glsl
+++ b/test/expressions/swizzle/write/packed_vec3/u32.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 struct S {
   uvec3 v;
 };
diff --git a/test/expressions/swizzle/write/vec3/f32.wgsl.expected.glsl b/test/expressions/swizzle/write/vec3/f32.wgsl.expected.glsl
index cee44ac..e8e796e 100644
--- a/test/expressions/swizzle/write/vec3/f32.wgsl.expected.glsl
+++ b/test/expressions/swizzle/write/vec3/f32.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 struct S {
   vec3 v;
 };
diff --git a/test/expressions/swizzle/write/vec3/i32.wgsl.expected.glsl b/test/expressions/swizzle/write/vec3/i32.wgsl.expected.glsl
index 112ae41..3e37362 100644
--- a/test/expressions/swizzle/write/vec3/i32.wgsl.expected.glsl
+++ b/test/expressions/swizzle/write/vec3/i32.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 struct S {
   ivec3 v;
 };
diff --git a/test/expressions/swizzle/write/vec3/u32.wgsl.expected.glsl b/test/expressions/swizzle/write/vec3/u32.wgsl.expected.glsl
index 436eff0..577feeb 100644
--- a/test/expressions/swizzle/write/vec3/u32.wgsl.expected.glsl
+++ b/test/expressions/swizzle/write/vec3/u32.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 struct S {
   uvec3 v;
 };
diff --git a/test/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.glsl b/test/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.glsl
index f2b52ac..92979b1 100644
--- a/test/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const mat2 m = mat2(0.0f, 1.0f, 2.0f, 3.0f);
diff --git a/test/expressions/type_ctor/mat2x2/explicit/vectors/f32.wgsl.expected.glsl b/test/expressions/type_ctor/mat2x2/explicit/vectors/f32.wgsl.expected.glsl
index 06c93e9..515cbea 100644
--- a/test/expressions/type_ctor/mat2x2/explicit/vectors/f32.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/mat2x2/explicit/vectors/f32.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const mat2 m = mat2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f));
diff --git a/test/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl.expected.glsl b/test/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl.expected.glsl
index f2b52ac..92979b1 100644
--- a/test/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const mat2 m = mat2(0.0f, 1.0f, 2.0f, 3.0f);
diff --git a/test/expressions/type_ctor/mat2x2/inferred/vectors/f32.wgsl.expected.glsl b/test/expressions/type_ctor/mat2x2/inferred/vectors/f32.wgsl.expected.glsl
index 06c93e9..515cbea 100644
--- a/test/expressions/type_ctor/mat2x2/inferred/vectors/f32.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/mat2x2/inferred/vectors/f32.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const mat2 m = mat2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f));
diff --git a/test/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.glsl b/test/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.glsl
index 04b32b6..86412db 100644
--- a/test/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const mat2x3 m = mat2x3(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f);
diff --git a/test/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl.expected.glsl b/test/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl.expected.glsl
index c78cd8d..13f37ec 100644
--- a/test/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const mat2x3 m = mat2x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f));
diff --git a/test/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.glsl b/test/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.glsl
index 04b32b6..86412db 100644
--- a/test/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const mat2x3 m = mat2x3(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f);
diff --git a/test/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl.expected.glsl b/test/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl.expected.glsl
index c78cd8d..13f37ec 100644
--- a/test/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const mat2x3 m = mat2x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f));
diff --git a/test/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.glsl b/test/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.glsl
index 122dc44..35bc633 100644
--- a/test/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const mat2x4 m = mat2x4(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f);
diff --git a/test/expressions/type_ctor/mat2x4/explicit/vectors/f32.wgsl.expected.glsl b/test/expressions/type_ctor/mat2x4/explicit/vectors/f32.wgsl.expected.glsl
index 801356a..34fe0f3 100644
--- a/test/expressions/type_ctor/mat2x4/explicit/vectors/f32.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/mat2x4/explicit/vectors/f32.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const mat2x4 m = mat2x4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f));
diff --git a/test/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl.expected.glsl b/test/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl.expected.glsl
index 122dc44..35bc633 100644
--- a/test/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const mat2x4 m = mat2x4(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f);
diff --git a/test/expressions/type_ctor/mat2x4/inferred/vectors/f32.wgsl.expected.glsl b/test/expressions/type_ctor/mat2x4/inferred/vectors/f32.wgsl.expected.glsl
index 801356a..34fe0f3 100644
--- a/test/expressions/type_ctor/mat2x4/inferred/vectors/f32.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/mat2x4/inferred/vectors/f32.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const mat2x4 m = mat2x4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f));
diff --git a/test/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.glsl b/test/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.glsl
index 55235ae..6f17570 100644
--- a/test/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const mat3x2 m = mat3x2(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f);
diff --git a/test/expressions/type_ctor/mat3x2/explicit/vectors/f32.wgsl.expected.glsl b/test/expressions/type_ctor/mat3x2/explicit/vectors/f32.wgsl.expected.glsl
index 6bedaa5..ddeadd0 100644
--- a/test/expressions/type_ctor/mat3x2/explicit/vectors/f32.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/mat3x2/explicit/vectors/f32.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const mat3x2 m = mat3x2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f), vec2(4.0f, 5.0f));
diff --git a/test/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl.expected.glsl b/test/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl.expected.glsl
index 55235ae..6f17570 100644
--- a/test/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const mat3x2 m = mat3x2(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f);
diff --git a/test/expressions/type_ctor/mat3x2/inferred/vectors/f32.wgsl.expected.glsl b/test/expressions/type_ctor/mat3x2/inferred/vectors/f32.wgsl.expected.glsl
index 6bedaa5..ddeadd0 100644
--- a/test/expressions/type_ctor/mat3x2/inferred/vectors/f32.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/mat3x2/inferred/vectors/f32.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const mat3x2 m = mat3x2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f), vec2(4.0f, 5.0f));
diff --git a/test/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.glsl b/test/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.glsl
index a712081..a0f6c5c 100644
--- a/test/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const mat3 m = mat3(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f);
diff --git a/test/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl.expected.glsl b/test/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl.expected.glsl
index cbf652b..a1ad3fc 100644
--- a/test/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const mat3 m = mat3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f));
diff --git a/test/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.glsl b/test/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.glsl
index a712081..a0f6c5c 100644
--- a/test/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const mat3 m = mat3(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f);
diff --git a/test/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl.expected.glsl b/test/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl.expected.glsl
index cbf652b..a1ad3fc 100644
--- a/test/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const mat3 m = mat3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f));
diff --git a/test/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.glsl b/test/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.glsl
index 7cb85e1..6fde078 100644
--- a/test/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const mat3x4 m = mat3x4(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f);
diff --git a/test/expressions/type_ctor/mat3x4/explicit/vectors/f32.wgsl.expected.glsl b/test/expressions/type_ctor/mat3x4/explicit/vectors/f32.wgsl.expected.glsl
index 84ba7f1..9643577 100644
--- a/test/expressions/type_ctor/mat3x4/explicit/vectors/f32.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/mat3x4/explicit/vectors/f32.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const mat3x4 m = mat3x4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f), vec4(8.0f, 9.0f, 10.0f, 11.0f));
diff --git a/test/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl.expected.glsl b/test/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl.expected.glsl
index 7cb85e1..6fde078 100644
--- a/test/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const mat3x4 m = mat3x4(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f);
diff --git a/test/expressions/type_ctor/mat3x4/inferred/vectors/f32.wgsl.expected.glsl b/test/expressions/type_ctor/mat3x4/inferred/vectors/f32.wgsl.expected.glsl
index 84ba7f1..9643577 100644
--- a/test/expressions/type_ctor/mat3x4/inferred/vectors/f32.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/mat3x4/inferred/vectors/f32.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const mat3x4 m = mat3x4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f), vec4(8.0f, 9.0f, 10.0f, 11.0f));
diff --git a/test/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.glsl b/test/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.glsl
index 402014f..78e98c0 100644
--- a/test/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const mat4x2 m = mat4x2(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f);
diff --git a/test/expressions/type_ctor/mat4x2/explicit/vectors/f32.wgsl.expected.glsl b/test/expressions/type_ctor/mat4x2/explicit/vectors/f32.wgsl.expected.glsl
index bae5a65..ddec8a9 100644
--- a/test/expressions/type_ctor/mat4x2/explicit/vectors/f32.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/mat4x2/explicit/vectors/f32.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const mat4x2 m = mat4x2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f), vec2(4.0f, 5.0f), vec2(6.0f, 7.0f));
diff --git a/test/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl.expected.glsl b/test/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl.expected.glsl
index 402014f..78e98c0 100644
--- a/test/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const mat4x2 m = mat4x2(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f);
diff --git a/test/expressions/type_ctor/mat4x2/inferred/vectors/f32.wgsl.expected.glsl b/test/expressions/type_ctor/mat4x2/inferred/vectors/f32.wgsl.expected.glsl
index bae5a65..ddec8a9 100644
--- a/test/expressions/type_ctor/mat4x2/inferred/vectors/f32.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/mat4x2/inferred/vectors/f32.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const mat4x2 m = mat4x2(vec2(0.0f, 1.0f), vec2(2.0f, 3.0f), vec2(4.0f, 5.0f), vec2(6.0f, 7.0f));
diff --git a/test/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.glsl b/test/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.glsl
index 115a572..f4bcaf0 100644
--- a/test/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const mat4x3 m = mat4x3(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f);
diff --git a/test/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl.expected.glsl b/test/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl.expected.glsl
index f5559a8..4771ae3 100644
--- a/test/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const mat4x3 m = mat4x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f), vec3(9.0f, 10.0f, 11.0f));
diff --git a/test/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.glsl b/test/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.glsl
index 115a572..f4bcaf0 100644
--- a/test/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const mat4x3 m = mat4x3(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f);
diff --git a/test/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl.expected.glsl b/test/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl.expected.glsl
index f5559a8..4771ae3 100644
--- a/test/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const mat4x3 m = mat4x3(vec3(0.0f, 1.0f, 2.0f), vec3(3.0f, 4.0f, 5.0f), vec3(6.0f, 7.0f, 8.0f), vec3(9.0f, 10.0f, 11.0f));
diff --git a/test/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.glsl b/test/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.glsl
index 5a35fce..c6993a3 100644
--- a/test/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const mat4 m = mat4(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f, 13.0f, 14.0f, 15.0f);
diff --git a/test/expressions/type_ctor/mat4x4/explicit/vectors/f32.wgsl.expected.glsl b/test/expressions/type_ctor/mat4x4/explicit/vectors/f32.wgsl.expected.glsl
index 155df1e..77abecf 100644
--- a/test/expressions/type_ctor/mat4x4/explicit/vectors/f32.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/mat4x4/explicit/vectors/f32.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const mat4 m = mat4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f), vec4(8.0f, 9.0f, 10.0f, 11.0f), vec4(12.0f, 13.0f, 14.0f, 15.0f));
diff --git a/test/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl.expected.glsl b/test/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl.expected.glsl
index 5a35fce..c6993a3 100644
--- a/test/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const mat4 m = mat4(0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f, 13.0f, 14.0f, 15.0f);
diff --git a/test/expressions/type_ctor/mat4x4/inferred/vectors/f32.wgsl.expected.glsl b/test/expressions/type_ctor/mat4x4/inferred/vectors/f32.wgsl.expected.glsl
index 155df1e..77abecf 100644
--- a/test/expressions/type_ctor/mat4x4/inferred/vectors/f32.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/mat4x4/inferred/vectors/f32.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const mat4 m = mat4(vec4(0.0f, 1.0f, 2.0f, 3.0f), vec4(4.0f, 5.0f, 6.0f, 7.0f), vec4(8.0f, 9.0f, 10.0f, 11.0f), vec4(12.0f, 13.0f, 14.0f, 15.0f));
diff --git a/test/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.glsl b/test/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.glsl
index 5f0a93c..53db389 100644
--- a/test/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const bvec2 v = bvec2(false, true);
diff --git a/test/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.glsl b/test/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.glsl
index 82f16fa..c340fed 100644
--- a/test/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const vec2 v = vec2(0.0f, 1.0f);
diff --git a/test/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.glsl b/test/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.glsl
index b96b5c7..2d59050 100644
--- a/test/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const ivec2 v = ivec2(0, 1);
diff --git a/test/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.glsl b/test/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.glsl
index 682a6c0..743b580 100644
--- a/test/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const uvec2 v = uvec2(0u, 1u);
diff --git a/test/expressions/type_ctor/vec2/inferred/bool.wgsl.expected.glsl b/test/expressions/type_ctor/vec2/inferred/bool.wgsl.expected.glsl
index 5f0a93c..53db389 100644
--- a/test/expressions/type_ctor/vec2/inferred/bool.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/vec2/inferred/bool.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const bvec2 v = bvec2(false, true);
diff --git a/test/expressions/type_ctor/vec2/inferred/f32.wgsl.expected.glsl b/test/expressions/type_ctor/vec2/inferred/f32.wgsl.expected.glsl
index 82f16fa..c340fed 100644
--- a/test/expressions/type_ctor/vec2/inferred/f32.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/vec2/inferred/f32.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const vec2 v = vec2(0.0f, 1.0f);
diff --git a/test/expressions/type_ctor/vec2/inferred/i32.wgsl.expected.glsl b/test/expressions/type_ctor/vec2/inferred/i32.wgsl.expected.glsl
index b96b5c7..2d59050 100644
--- a/test/expressions/type_ctor/vec2/inferred/i32.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/vec2/inferred/i32.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const ivec2 v = ivec2(0, 1);
diff --git a/test/expressions/type_ctor/vec2/inferred/u32.wgsl.expected.glsl b/test/expressions/type_ctor/vec2/inferred/u32.wgsl.expected.glsl
index 682a6c0..743b580 100644
--- a/test/expressions/type_ctor/vec2/inferred/u32.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/vec2/inferred/u32.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const uvec2 v = uvec2(0u, 1u);
diff --git a/test/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.glsl b/test/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.glsl
index 148321a..f8392fa 100644
--- a/test/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const bvec3 v = bvec3(false, true, false);
diff --git a/test/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.glsl b/test/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.glsl
index 4918115..78cfca3 100644
--- a/test/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const vec3 v = vec3(0.0f, 1.0f, 2.0f);
diff --git a/test/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.glsl b/test/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.glsl
index 7958518..3b8d407 100644
--- a/test/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const ivec3 v = ivec3(0, 1, 2);
diff --git a/test/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.glsl b/test/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.glsl
index aa7de93..3f48c28 100644
--- a/test/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const uvec3 v = uvec3(0u, 1u, 2u);
diff --git a/test/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.glsl b/test/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.glsl
index a93f549..8ff5927 100644
--- a/test/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const bvec4 v = bvec4(false, true, false, true);
diff --git a/test/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.glsl b/test/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.glsl
index 35b45c1..7833b9e 100644
--- a/test/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const vec4 v = vec4(0.0f, 1.0f, 2.0f, 3.0f);
diff --git a/test/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.glsl b/test/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.glsl
index a572594..8f18e6f 100644
--- a/test/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const ivec4 v = ivec4(0, 1, 2, 3);
diff --git a/test/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.glsl b/test/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.glsl
index aa3aca8..6f3e96a 100644
--- a/test/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.glsl
+++ b/test/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.glsl
@@ -5,9 +5,4 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const uvec4 v = uvec4(0u, 1u, 2u, 3u);
diff --git a/test/expressions/unary/complement/complement.wgsl.expected.glsl b/test/expressions/unary/complement/complement.wgsl.expected.glsl
index 5bec84b..e32ab12 100644
--- a/test/expressions/unary/complement/complement.wgsl.expected.glsl
+++ b/test/expressions/unary/complement/complement.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 int i(int x) {
   return ~(x);
 }
diff --git a/test/expressions/unary/negate/negate.wgsl.expected.glsl b/test/expressions/unary/negate/negate.wgsl.expected.glsl
index d964058..f1ffb81 100644
--- a/test/expressions/unary/negate/negate.wgsl.expected.glsl
+++ b/test/expressions/unary/negate/negate.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 int i(int x) {
   return -(x);
 }
diff --git a/test/expressions/zero_init/array/bool.wgsl.expected.glsl b/test/expressions/zero_init/array/bool.wgsl.expected.glsl
index 2d7cab4..8463695 100644
--- a/test/expressions/zero_init/array/bool.wgsl.expected.glsl
+++ b/test/expressions/zero_init/array/bool.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   bool v[4] = bool[4](false, false, false, false);
 }
diff --git a/test/expressions/zero_init/array/f32.wgsl.expected.glsl b/test/expressions/zero_init/array/f32.wgsl.expected.glsl
index 7022024..fb9331f 100644
--- a/test/expressions/zero_init/array/f32.wgsl.expected.glsl
+++ b/test/expressions/zero_init/array/f32.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   float v[4] = float[4](0.0f, 0.0f, 0.0f, 0.0f);
 }
diff --git a/test/expressions/zero_init/array/i32.wgsl.expected.glsl b/test/expressions/zero_init/array/i32.wgsl.expected.glsl
index 41cfbb6..50e3677 100644
--- a/test/expressions/zero_init/array/i32.wgsl.expected.glsl
+++ b/test/expressions/zero_init/array/i32.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   int v[4] = int[4](0, 0, 0, 0);
 }
diff --git a/test/expressions/zero_init/array/struct.wgsl.expected.glsl b/test/expressions/zero_init/array/struct.wgsl.expected.glsl
index 89eed92..778e1ae 100644
--- a/test/expressions/zero_init/array/struct.wgsl.expected.glsl
+++ b/test/expressions/zero_init/array/struct.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 struct S {
   int i;
   uint u;
diff --git a/test/expressions/zero_init/array/u32.wgsl.expected.glsl b/test/expressions/zero_init/array/u32.wgsl.expected.glsl
index f78daa6..98e243c 100644
--- a/test/expressions/zero_init/array/u32.wgsl.expected.glsl
+++ b/test/expressions/zero_init/array/u32.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   uint v[4] = uint[4](0u, 0u, 0u, 0u);
 }
diff --git a/test/expressions/zero_init/mat2x2/f32.wgsl.expected.glsl b/test/expressions/zero_init/mat2x2/f32.wgsl.expected.glsl
index 517a2a7..9f518ca 100644
--- a/test/expressions/zero_init/mat2x2/f32.wgsl.expected.glsl
+++ b/test/expressions/zero_init/mat2x2/f32.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   mat2 v = mat2(0.0f, 0.0f, 0.0f, 0.0f);
 }
diff --git a/test/expressions/zero_init/mat2x3/f32.wgsl.expected.glsl b/test/expressions/zero_init/mat2x3/f32.wgsl.expected.glsl
index 7fa2090..0165c1f 100644
--- a/test/expressions/zero_init/mat2x3/f32.wgsl.expected.glsl
+++ b/test/expressions/zero_init/mat2x3/f32.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   mat2x3 v = mat2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
 }
diff --git a/test/expressions/zero_init/mat2x4/f32.wgsl.expected.glsl b/test/expressions/zero_init/mat2x4/f32.wgsl.expected.glsl
index 1abeed6..ce479c3 100644
--- a/test/expressions/zero_init/mat2x4/f32.wgsl.expected.glsl
+++ b/test/expressions/zero_init/mat2x4/f32.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   mat2x4 v = mat2x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
 }
diff --git a/test/expressions/zero_init/mat3x2/f32.wgsl.expected.glsl b/test/expressions/zero_init/mat3x2/f32.wgsl.expected.glsl
index 40e1a7f..fb67a2d 100644
--- a/test/expressions/zero_init/mat3x2/f32.wgsl.expected.glsl
+++ b/test/expressions/zero_init/mat3x2/f32.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   mat3x2 v = mat3x2(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
 }
diff --git a/test/expressions/zero_init/mat3x3/f32.wgsl.expected.glsl b/test/expressions/zero_init/mat3x3/f32.wgsl.expected.glsl
index cfd03bb..5310b75 100644
--- a/test/expressions/zero_init/mat3x3/f32.wgsl.expected.glsl
+++ b/test/expressions/zero_init/mat3x3/f32.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   mat3 v = mat3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
 }
diff --git a/test/expressions/zero_init/mat3x4/f32.wgsl.expected.glsl b/test/expressions/zero_init/mat3x4/f32.wgsl.expected.glsl
index 979ea88..dd175f9 100644
--- a/test/expressions/zero_init/mat3x4/f32.wgsl.expected.glsl
+++ b/test/expressions/zero_init/mat3x4/f32.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   mat3x4 v = mat3x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
 }
diff --git a/test/expressions/zero_init/mat4x2/f32.wgsl.expected.glsl b/test/expressions/zero_init/mat4x2/f32.wgsl.expected.glsl
index 2d5d77a..0f2b794 100644
--- a/test/expressions/zero_init/mat4x2/f32.wgsl.expected.glsl
+++ b/test/expressions/zero_init/mat4x2/f32.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   mat4x2 v = mat4x2(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
 }
diff --git a/test/expressions/zero_init/mat4x3/f32.wgsl.expected.glsl b/test/expressions/zero_init/mat4x3/f32.wgsl.expected.glsl
index 7a71b37..28efe1a 100644
--- a/test/expressions/zero_init/mat4x3/f32.wgsl.expected.glsl
+++ b/test/expressions/zero_init/mat4x3/f32.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   mat4x3 v = mat4x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
 }
diff --git a/test/expressions/zero_init/mat4x4/f32.wgsl.expected.glsl b/test/expressions/zero_init/mat4x4/f32.wgsl.expected.glsl
index 1f94079..c31c721 100644
--- a/test/expressions/zero_init/mat4x4/f32.wgsl.expected.glsl
+++ b/test/expressions/zero_init/mat4x4/f32.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   mat4 v = mat4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
 }
diff --git a/test/expressions/zero_init/scalar/bool.wgsl.expected.glsl b/test/expressions/zero_init/scalar/bool.wgsl.expected.glsl
index a7f7c2d..e8f01b5 100644
--- a/test/expressions/zero_init/scalar/bool.wgsl.expected.glsl
+++ b/test/expressions/zero_init/scalar/bool.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   bool v = false;
 }
diff --git a/test/expressions/zero_init/scalar/f32.wgsl.expected.glsl b/test/expressions/zero_init/scalar/f32.wgsl.expected.glsl
index e0fa8af..bd43369 100644
--- a/test/expressions/zero_init/scalar/f32.wgsl.expected.glsl
+++ b/test/expressions/zero_init/scalar/f32.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   float v = 0.0f;
 }
diff --git a/test/expressions/zero_init/scalar/i32.wgsl.expected.glsl b/test/expressions/zero_init/scalar/i32.wgsl.expected.glsl
index e2e115e..255d2f8 100644
--- a/test/expressions/zero_init/scalar/i32.wgsl.expected.glsl
+++ b/test/expressions/zero_init/scalar/i32.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   int v = 0;
 }
diff --git a/test/expressions/zero_init/scalar/u32.wgsl.expected.glsl b/test/expressions/zero_init/scalar/u32.wgsl.expected.glsl
index 29a2c66..09d837d 100644
--- a/test/expressions/zero_init/scalar/u32.wgsl.expected.glsl
+++ b/test/expressions/zero_init/scalar/u32.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   uint v = 0u;
 }
diff --git a/test/expressions/zero_init/struct/array.wgsl.expected.glsl b/test/expressions/zero_init/struct/array.wgsl.expected.glsl
index b51d09b..cce4114 100644
--- a/test/expressions/zero_init/struct/array.wgsl.expected.glsl
+++ b/test/expressions/zero_init/struct/array.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 struct S {
   float a[4];
 };
diff --git a/test/expressions/zero_init/struct/scalar.wgsl.expected.glsl b/test/expressions/zero_init/struct/scalar.wgsl.expected.glsl
index 7c2cf98..1b3576b 100644
--- a/test/expressions/zero_init/struct/scalar.wgsl.expected.glsl
+++ b/test/expressions/zero_init/struct/scalar.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 struct S {
   int i;
   uint u;
diff --git a/test/expressions/zero_init/vec2/bool.wgsl.expected.glsl b/test/expressions/zero_init/vec2/bool.wgsl.expected.glsl
index 73bbf51..35b4dcb 100644
--- a/test/expressions/zero_init/vec2/bool.wgsl.expected.glsl
+++ b/test/expressions/zero_init/vec2/bool.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   bvec2 v = bvec2(false, false);
 }
diff --git a/test/expressions/zero_init/vec2/f32.wgsl.expected.glsl b/test/expressions/zero_init/vec2/f32.wgsl.expected.glsl
index 7e16662..51e9cb8 100644
--- a/test/expressions/zero_init/vec2/f32.wgsl.expected.glsl
+++ b/test/expressions/zero_init/vec2/f32.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   vec2 v = vec2(0.0f, 0.0f);
 }
diff --git a/test/expressions/zero_init/vec2/i32.wgsl.expected.glsl b/test/expressions/zero_init/vec2/i32.wgsl.expected.glsl
index 7d201b3..ce483b6 100644
--- a/test/expressions/zero_init/vec2/i32.wgsl.expected.glsl
+++ b/test/expressions/zero_init/vec2/i32.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   ivec2 v = ivec2(0, 0);
 }
diff --git a/test/expressions/zero_init/vec2/u32.wgsl.expected.glsl b/test/expressions/zero_init/vec2/u32.wgsl.expected.glsl
index eb07fe3..749cdc7 100644
--- a/test/expressions/zero_init/vec2/u32.wgsl.expected.glsl
+++ b/test/expressions/zero_init/vec2/u32.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   uvec2 v = uvec2(0u, 0u);
 }
diff --git a/test/expressions/zero_init/vec3/bool.wgsl.expected.glsl b/test/expressions/zero_init/vec3/bool.wgsl.expected.glsl
index fe62845..678919b 100644
--- a/test/expressions/zero_init/vec3/bool.wgsl.expected.glsl
+++ b/test/expressions/zero_init/vec3/bool.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   bvec3 v = bvec3(false, false, false);
 }
diff --git a/test/expressions/zero_init/vec3/f32.wgsl.expected.glsl b/test/expressions/zero_init/vec3/f32.wgsl.expected.glsl
index 03af60b..5468322 100644
--- a/test/expressions/zero_init/vec3/f32.wgsl.expected.glsl
+++ b/test/expressions/zero_init/vec3/f32.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   vec3 v = vec3(0.0f, 0.0f, 0.0f);
 }
diff --git a/test/expressions/zero_init/vec3/i32.wgsl.expected.glsl b/test/expressions/zero_init/vec3/i32.wgsl.expected.glsl
index c99c12d..b489724 100644
--- a/test/expressions/zero_init/vec3/i32.wgsl.expected.glsl
+++ b/test/expressions/zero_init/vec3/i32.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   ivec3 v = ivec3(0, 0, 0);
 }
diff --git a/test/expressions/zero_init/vec3/u32.wgsl.expected.glsl b/test/expressions/zero_init/vec3/u32.wgsl.expected.glsl
index 9ea7708..dd49140 100644
--- a/test/expressions/zero_init/vec3/u32.wgsl.expected.glsl
+++ b/test/expressions/zero_init/vec3/u32.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   uvec3 v = uvec3(0u, 0u, 0u);
 }
diff --git a/test/expressions/zero_init/vec4/bool.wgsl.expected.glsl b/test/expressions/zero_init/vec4/bool.wgsl.expected.glsl
index 31e837d..0177ac8 100644
--- a/test/expressions/zero_init/vec4/bool.wgsl.expected.glsl
+++ b/test/expressions/zero_init/vec4/bool.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   bvec4 v = bvec4(false, false, false, false);
 }
diff --git a/test/expressions/zero_init/vec4/f32.wgsl.expected.glsl b/test/expressions/zero_init/vec4/f32.wgsl.expected.glsl
index 049ff23..839fe03 100644
--- a/test/expressions/zero_init/vec4/f32.wgsl.expected.glsl
+++ b/test/expressions/zero_init/vec4/f32.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   vec4 v = vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
diff --git a/test/expressions/zero_init/vec4/i32.wgsl.expected.glsl b/test/expressions/zero_init/vec4/i32.wgsl.expected.glsl
index 354ec54..8c06b10 100644
--- a/test/expressions/zero_init/vec4/i32.wgsl.expected.glsl
+++ b/test/expressions/zero_init/vec4/i32.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   ivec4 v = ivec4(0, 0, 0, 0);
 }
diff --git a/test/expressions/zero_init/vec4/u32.wgsl.expected.glsl b/test/expressions/zero_init/vec4/u32.wgsl.expected.glsl
index d2e1db5..18cde8f 100644
--- a/test/expressions/zero_init/vec4/u32.wgsl.expected.glsl
+++ b/test/expressions/zero_init/vec4/u32.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   uvec4 v = uvec4(0u, 0u, 0u, 0u);
 }
diff --git a/test/identifiers/underscore/double/alias.wgsl.expected.glsl b/test/identifiers/underscore/double/alias.wgsl.expected.glsl
index e4a9a6b..302a366 100644
--- a/test/identifiers/underscore/double/alias.wgsl.expected.glsl
+++ b/test/identifiers/underscore/double/alias.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   int c = 0;
   int d = 0;
diff --git a/test/identifiers/underscore/double/fn.wgsl.expected.glsl b/test/identifiers/underscore/double/fn.wgsl.expected.glsl
index 7db0e21..6ff4ef5 100644
--- a/test/identifiers/underscore/double/fn.wgsl.expected.glsl
+++ b/test/identifiers/underscore/double/fn.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void a() {
 }
 
diff --git a/test/identifiers/underscore/double/let.wgsl.expected.glsl b/test/identifiers/underscore/double/let.wgsl.expected.glsl
index 78fedf7..0adb0da 100644
--- a/test/identifiers/underscore/double/let.wgsl.expected.glsl
+++ b/test/identifiers/underscore/double/let.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const int a = 1;
 const int a__ = 2;
 void f() {
diff --git a/test/identifiers/underscore/double/parameter.wgsl.expected.glsl b/test/identifiers/underscore/double/parameter.wgsl.expected.glsl
index e1b6103..55acbfa 100644
--- a/test/identifiers/underscore/double/parameter.wgsl.expected.glsl
+++ b/test/identifiers/underscore/double/parameter.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f(int a__) {
   int b = a__;
 }
diff --git a/test/identifiers/underscore/double/struct.wgsl.expected.glsl b/test/identifiers/underscore/double/struct.wgsl.expected.glsl
index 55043eb..d397b8d 100644
--- a/test/identifiers/underscore/double/struct.wgsl.expected.glsl
+++ b/test/identifiers/underscore/double/struct.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 struct a {
   int b;
 };
diff --git a/test/identifiers/underscore/double/var.wgsl.expected.glsl b/test/identifiers/underscore/double/var.wgsl.expected.glsl
index 0a28a9e..29bf5e7 100644
--- a/test/identifiers/underscore/double/var.wgsl.expected.glsl
+++ b/test/identifiers/underscore/double/var.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 int a = 1;
 int a__ = 2;
 void f() {
diff --git a/test/identifiers/underscore/prefix/lower/alias.wgsl.expected.glsl b/test/identifiers/underscore/prefix/lower/alias.wgsl.expected.glsl
index e4a9a6b..302a366 100644
--- a/test/identifiers/underscore/prefix/lower/alias.wgsl.expected.glsl
+++ b/test/identifiers/underscore/prefix/lower/alias.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   int c = 0;
   int d = 0;
diff --git a/test/identifiers/underscore/prefix/lower/fn.wgsl.expected.glsl b/test/identifiers/underscore/prefix/lower/fn.wgsl.expected.glsl
index 17482fd..874eea1 100644
--- a/test/identifiers/underscore/prefix/lower/fn.wgsl.expected.glsl
+++ b/test/identifiers/underscore/prefix/lower/fn.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void a() {
 }
 
diff --git a/test/identifiers/underscore/prefix/lower/let.wgsl.expected.glsl b/test/identifiers/underscore/prefix/lower/let.wgsl.expected.glsl
index f4f4bea..4729815 100644
--- a/test/identifiers/underscore/prefix/lower/let.wgsl.expected.glsl
+++ b/test/identifiers/underscore/prefix/lower/let.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const int a = 1;
 const int _a = 2;
 void f() {
diff --git a/test/identifiers/underscore/prefix/lower/parameter.wgsl.expected.glsl b/test/identifiers/underscore/prefix/lower/parameter.wgsl.expected.glsl
index e87ca0b..a0f0b09 100644
--- a/test/identifiers/underscore/prefix/lower/parameter.wgsl.expected.glsl
+++ b/test/identifiers/underscore/prefix/lower/parameter.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f(int _a) {
   int b = _a;
 }
diff --git a/test/identifiers/underscore/prefix/lower/struct.wgsl.expected.glsl b/test/identifiers/underscore/prefix/lower/struct.wgsl.expected.glsl
index 1ff7bdc..501dd31 100644
--- a/test/identifiers/underscore/prefix/lower/struct.wgsl.expected.glsl
+++ b/test/identifiers/underscore/prefix/lower/struct.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 struct a {
   int b;
 };
diff --git a/test/identifiers/underscore/prefix/lower/var.wgsl.expected.glsl b/test/identifiers/underscore/prefix/lower/var.wgsl.expected.glsl
index db69473..a81fcaa 100644
--- a/test/identifiers/underscore/prefix/lower/var.wgsl.expected.glsl
+++ b/test/identifiers/underscore/prefix/lower/var.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 int a = 1;
 int _a = 2;
 void f() {
diff --git a/test/identifiers/underscore/prefix/upper/alias.wgsl.expected.glsl b/test/identifiers/underscore/prefix/upper/alias.wgsl.expected.glsl
index e4a9a6b..302a366 100644
--- a/test/identifiers/underscore/prefix/upper/alias.wgsl.expected.glsl
+++ b/test/identifiers/underscore/prefix/upper/alias.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   int c = 0;
   int d = 0;
diff --git a/test/identifiers/underscore/prefix/upper/fn.wgsl.expected.glsl b/test/identifiers/underscore/prefix/upper/fn.wgsl.expected.glsl
index 3088dd6..a1c003b 100644
--- a/test/identifiers/underscore/prefix/upper/fn.wgsl.expected.glsl
+++ b/test/identifiers/underscore/prefix/upper/fn.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void A() {
 }
 
diff --git a/test/identifiers/underscore/prefix/upper/let.wgsl.expected.glsl b/test/identifiers/underscore/prefix/upper/let.wgsl.expected.glsl
index de02479..68e9d79 100644
--- a/test/identifiers/underscore/prefix/upper/let.wgsl.expected.glsl
+++ b/test/identifiers/underscore/prefix/upper/let.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 const int A = 1;
 const int _A = 2;
 void f() {
diff --git a/test/identifiers/underscore/prefix/upper/parameter.wgsl.expected.glsl b/test/identifiers/underscore/prefix/upper/parameter.wgsl.expected.glsl
index 7b37d8f..ea2409e 100644
--- a/test/identifiers/underscore/prefix/upper/parameter.wgsl.expected.glsl
+++ b/test/identifiers/underscore/prefix/upper/parameter.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f(int _A) {
   int B = _A;
 }
diff --git a/test/identifiers/underscore/prefix/upper/struct.wgsl.expected.glsl b/test/identifiers/underscore/prefix/upper/struct.wgsl.expected.glsl
index 8334244..09ea4e0 100644
--- a/test/identifiers/underscore/prefix/upper/struct.wgsl.expected.glsl
+++ b/test/identifiers/underscore/prefix/upper/struct.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 struct A {
   int B;
 };
diff --git a/test/identifiers/underscore/prefix/upper/var.wgsl.expected.glsl b/test/identifiers/underscore/prefix/upper/var.wgsl.expected.glsl
index 8285b2a..12474b5 100644
--- a/test/identifiers/underscore/prefix/upper/var.wgsl.expected.glsl
+++ b/test/identifiers/underscore/prefix/upper/var.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 int A = 1;
 int _A = 2;
 void f() {
diff --git a/test/intrinsics/arrayLength/complex_via_let.wgsl.expected.glsl b/test/intrinsics/arrayLength/complex_via_let.wgsl.expected.glsl
index b3f0b74..f05ef5a 100644
--- a/test/intrinsics/arrayLength/complex_via_let.wgsl.expected.glsl
+++ b/test/intrinsics/arrayLength/complex_via_let.wgsl.expected.glsl
@@ -6,22 +6,21 @@
 layout(binding = 0) buffer S_1 {
   int a[];
 } G;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   uint tint_symbol_2 = 0u;
   G.GetDimensions(tint_symbol_2);
   uint tint_symbol_3 = ((tint_symbol_2 - 0u) / 4u);
   uint l1 = tint_symbol_3;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:10: 'GetDimensions' : no such field in structure 
-ERROR: 0:10: '' : compilation terminated 
+ERROR: 0:9: 'GetDimensions' : no such field in structure 
+ERROR: 0:9: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/intrinsics/arrayLength/complex_via_let_no_struct.wgsl.expected.glsl b/test/intrinsics/arrayLength/complex_via_let_no_struct.wgsl.expected.glsl
index 36ad7bd..fa81168 100644
--- a/test/intrinsics/arrayLength/complex_via_let_no_struct.wgsl.expected.glsl
+++ b/test/intrinsics/arrayLength/complex_via_let_no_struct.wgsl.expected.glsl
@@ -6,22 +6,21 @@
 layout(binding = 0) buffer G_block_1 {
   int inner[];
 } G;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   uint tint_symbol_2 = 0u;
   G.inner.GetDimensions(tint_symbol_2);
   uint tint_symbol_3 = (tint_symbol_2 / 4u);
   uint l1 = tint_symbol_3;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:10: '.' : cannot apply to an array: GetDimensions
-ERROR: 0:10: '' : compilation terminated 
+ERROR: 0:9: '.' : cannot apply to an array: GetDimensions
+ERROR: 0:9: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/intrinsics/arrayLength/deprecated.wgsl.expected.glsl b/test/intrinsics/arrayLength/deprecated.wgsl.expected.glsl
index 86ee59c..833412f 100644
--- a/test/intrinsics/arrayLength/deprecated.wgsl.expected.glsl
+++ b/test/intrinsics/arrayLength/deprecated.wgsl.expected.glsl
@@ -6,23 +6,22 @@
 layout(binding = 0) buffer S_1 {
   int a[];
 } G;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   uint tint_symbol_2 = 0u;
   G.GetDimensions(tint_symbol_2);
   uint tint_symbol_3 = ((tint_symbol_2 - 0u) / 4u);
   uint l1 = tint_symbol_3;
   uint l2 = tint_symbol_3;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:10: 'GetDimensions' : no such field in structure 
-ERROR: 0:10: '' : compilation terminated 
+ERROR: 0:9: 'GetDimensions' : no such field in structure 
+ERROR: 0:9: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/intrinsics/arrayLength/simple.wgsl.expected.glsl b/test/intrinsics/arrayLength/simple.wgsl.expected.glsl
index b3f0b74..f05ef5a 100644
--- a/test/intrinsics/arrayLength/simple.wgsl.expected.glsl
+++ b/test/intrinsics/arrayLength/simple.wgsl.expected.glsl
@@ -6,22 +6,21 @@
 layout(binding = 0) buffer S_1 {
   int a[];
 } G;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   uint tint_symbol_2 = 0u;
   G.GetDimensions(tint_symbol_2);
   uint tint_symbol_3 = ((tint_symbol_2 - 0u) / 4u);
   uint l1 = tint_symbol_3;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:10: 'GetDimensions' : no such field in structure 
-ERROR: 0:10: '' : compilation terminated 
+ERROR: 0:9: 'GetDimensions' : no such field in structure 
+ERROR: 0:9: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/intrinsics/arrayLength/simple_no_struct.wgsl.expected.glsl b/test/intrinsics/arrayLength/simple_no_struct.wgsl.expected.glsl
index 36ad7bd..fa81168 100644
--- a/test/intrinsics/arrayLength/simple_no_struct.wgsl.expected.glsl
+++ b/test/intrinsics/arrayLength/simple_no_struct.wgsl.expected.glsl
@@ -6,22 +6,21 @@
 layout(binding = 0) buffer G_block_1 {
   int inner[];
 } G;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   uint tint_symbol_2 = 0u;
   G.inner.GetDimensions(tint_symbol_2);
   uint tint_symbol_3 = (tint_symbol_2 / 4u);
   uint l1 = tint_symbol_3;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:10: '.' : cannot apply to an array: GetDimensions
-ERROR: 0:10: '' : compilation terminated 
+ERROR: 0:9: '.' : cannot apply to an array: GetDimensions
+ERROR: 0:9: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/intrinsics/arrayLength/via_let.wgsl.expected.glsl b/test/intrinsics/arrayLength/via_let.wgsl.expected.glsl
index b3f0b74..f05ef5a 100644
--- a/test/intrinsics/arrayLength/via_let.wgsl.expected.glsl
+++ b/test/intrinsics/arrayLength/via_let.wgsl.expected.glsl
@@ -6,22 +6,21 @@
 layout(binding = 0) buffer S_1 {
   int a[];
 } G;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   uint tint_symbol_2 = 0u;
   G.GetDimensions(tint_symbol_2);
   uint tint_symbol_3 = ((tint_symbol_2 - 0u) / 4u);
   uint l1 = tint_symbol_3;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:10: 'GetDimensions' : no such field in structure 
-ERROR: 0:10: '' : compilation terminated 
+ERROR: 0:9: 'GetDimensions' : no such field in structure 
+ERROR: 0:9: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/intrinsics/arrayLength/via_let_complex.wgsl.expected.glsl b/test/intrinsics/arrayLength/via_let_complex.wgsl.expected.glsl
index b3f0b74..f05ef5a 100644
--- a/test/intrinsics/arrayLength/via_let_complex.wgsl.expected.glsl
+++ b/test/intrinsics/arrayLength/via_let_complex.wgsl.expected.glsl
@@ -6,22 +6,21 @@
 layout(binding = 0) buffer S_1 {
   int a[];
 } G;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   uint tint_symbol_2 = 0u;
   G.GetDimensions(tint_symbol_2);
   uint tint_symbol_3 = ((tint_symbol_2 - 0u) / 4u);
   uint l1 = tint_symbol_3;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:10: 'GetDimensions' : no such field in structure 
-ERROR: 0:10: '' : compilation terminated 
+ERROR: 0:9: 'GetDimensions' : no such field in structure 
+ERROR: 0:9: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/intrinsics/arrayLength/via_let_complex_no_struct.wgsl.expected.glsl b/test/intrinsics/arrayLength/via_let_complex_no_struct.wgsl.expected.glsl
index 36ad7bd..fa81168 100644
--- a/test/intrinsics/arrayLength/via_let_complex_no_struct.wgsl.expected.glsl
+++ b/test/intrinsics/arrayLength/via_let_complex_no_struct.wgsl.expected.glsl
@@ -6,22 +6,21 @@
 layout(binding = 0) buffer G_block_1 {
   int inner[];
 } G;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   uint tint_symbol_2 = 0u;
   G.inner.GetDimensions(tint_symbol_2);
   uint tint_symbol_3 = (tint_symbol_2 / 4u);
   uint l1 = tint_symbol_3;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:10: '.' : cannot apply to an array: GetDimensions
-ERROR: 0:10: '' : compilation terminated 
+ERROR: 0:9: '.' : cannot apply to an array: GetDimensions
+ERROR: 0:9: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/intrinsics/arrayLength/via_let_no_struct.wgsl.expected.glsl b/test/intrinsics/arrayLength/via_let_no_struct.wgsl.expected.glsl
index 36ad7bd..fa81168 100644
--- a/test/intrinsics/arrayLength/via_let_no_struct.wgsl.expected.glsl
+++ b/test/intrinsics/arrayLength/via_let_no_struct.wgsl.expected.glsl
@@ -6,22 +6,21 @@
 layout(binding = 0) buffer G_block_1 {
   int inner[];
 } G;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   uint tint_symbol_2 = 0u;
   G.inner.GetDimensions(tint_symbol_2);
   uint tint_symbol_3 = (tint_symbol_2 / 4u);
   uint l1 = tint_symbol_3;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:10: '.' : cannot apply to an array: GetDimensions
-ERROR: 0:10: '' : compilation terminated 
+ERROR: 0:9: '.' : cannot apply to an array: GetDimensions
+ERROR: 0:9: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/intrinsics/degrees.spvasm.expected.glsl b/test/intrinsics/degrees.spvasm.expected.glsl
index 7512959..f73c198 100644
--- a/test/intrinsics/degrees.spvasm.expected.glsl
+++ b/test/intrinsics/degrees.spvasm.expected.glsl
@@ -14,13 +14,12 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/intrinsics/frexp.wgsl.expected.glsl b/test/intrinsics/frexp.wgsl.expected.glsl
index cf882c2..7cbc601 100644
--- a/test/intrinsics/frexp.wgsl.expected.glsl
+++ b/test/intrinsics/frexp.wgsl.expected.glsl
@@ -16,18 +16,17 @@
 }
 
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   frexp_result res = tint_frexp(1.230000019f);
   int tint_symbol_1 = res.exp;
   float sig = res.sig;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:11: 'frexp' : no matching overloaded function found 
 ERROR: 0:11: '' : compilation terminated 
diff --git a/test/intrinsics/gen/abs/002533.wgsl.expected.glsl b/test/intrinsics/gen/abs/002533.wgsl.expected.glsl
index 7506230..0e26161 100644
--- a/test/intrinsics/gen/abs/002533.wgsl.expected.glsl
+++ b/test/intrinsics/gen/abs/002533.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec4 res = abs(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   abs_002533();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec4 res = abs(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   abs_002533();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec4 res = abs(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   abs_002533();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/abs/005174.wgsl.expected.glsl b/test/intrinsics/gen/abs/005174.wgsl.expected.glsl
index 937d4f0..dfd8b54 100644
--- a/test/intrinsics/gen/abs/005174.wgsl.expected.glsl
+++ b/test/intrinsics/gen/abs/005174.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec3 res = abs(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   abs_005174();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec3 res = abs(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   abs_005174();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec3 res = abs(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   abs_005174();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/abs/1ce782.wgsl.expected.glsl b/test/intrinsics/gen/abs/1ce782.wgsl.expected.glsl
index d3ffa08..7cfa4b0 100644
--- a/test/intrinsics/gen/abs/1ce782.wgsl.expected.glsl
+++ b/test/intrinsics/gen/abs/1ce782.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   uvec4 res = abs(uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   abs_1ce782();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'abs' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 4-component vector of uint'
@@ -47,19 +34,14 @@
   uvec4 res = abs(uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   abs_1ce782();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'abs' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of uint'
@@ -75,20 +57,15 @@
   uvec4 res = abs(uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   abs_1ce782();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'abs' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 4-component vector of uint'
diff --git a/test/intrinsics/gen/abs/1e9d53.wgsl.expected.glsl b/test/intrinsics/gen/abs/1e9d53.wgsl.expected.glsl
index 5fdaf61..cc54c23 100644
--- a/test/intrinsics/gen/abs/1e9d53.wgsl.expected.glsl
+++ b/test/intrinsics/gen/abs/1e9d53.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec2 res = abs(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   abs_1e9d53();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec2 res = abs(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   abs_1e9d53();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec2 res = abs(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   abs_1e9d53();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/abs/467cd1.wgsl.expected.glsl b/test/intrinsics/gen/abs/467cd1.wgsl.expected.glsl
index fe400bb..f929fe2 100644
--- a/test/intrinsics/gen/abs/467cd1.wgsl.expected.glsl
+++ b/test/intrinsics/gen/abs/467cd1.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   uint res = abs(1u);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   abs_467cd1();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'abs' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp uint'
@@ -47,19 +34,14 @@
   uint res = abs(1u);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   abs_467cd1();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'abs' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump uint'
@@ -75,20 +57,15 @@
   uint res = abs(1u);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   abs_467cd1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'abs' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp uint'
diff --git a/test/intrinsics/gen/abs/4ad288.wgsl.expected.glsl b/test/intrinsics/gen/abs/4ad288.wgsl.expected.glsl
index 8e23912..eaadad8 100644
--- a/test/intrinsics/gen/abs/4ad288.wgsl.expected.glsl
+++ b/test/intrinsics/gen/abs/4ad288.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   int res = abs(1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   abs_4ad288();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   int res = abs(1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   abs_4ad288();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   int res = abs(1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   abs_4ad288();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/abs/5ad50a.wgsl.expected.glsl b/test/intrinsics/gen/abs/5ad50a.wgsl.expected.glsl
index 3c90e55..709618d 100644
--- a/test/intrinsics/gen/abs/5ad50a.wgsl.expected.glsl
+++ b/test/intrinsics/gen/abs/5ad50a.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   ivec3 res = abs(ivec3(0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   abs_5ad50a();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   ivec3 res = abs(ivec3(0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   abs_5ad50a();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   ivec3 res = abs(ivec3(0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   abs_5ad50a();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/abs/7326de.wgsl.expected.glsl b/test/intrinsics/gen/abs/7326de.wgsl.expected.glsl
index 149dfb5..7b5c7dd 100644
--- a/test/intrinsics/gen/abs/7326de.wgsl.expected.glsl
+++ b/test/intrinsics/gen/abs/7326de.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   uvec3 res = abs(uvec3(0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   abs_7326de();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'abs' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 3-component vector of uint'
@@ -47,19 +34,14 @@
   uvec3 res = abs(uvec3(0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   abs_7326de();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'abs' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 3-component vector of uint'
@@ -75,20 +57,15 @@
   uvec3 res = abs(uvec3(0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   abs_7326de();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'abs' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 3-component vector of uint'
diff --git a/test/intrinsics/gen/abs/7f28e6.wgsl.expected.glsl b/test/intrinsics/gen/abs/7f28e6.wgsl.expected.glsl
index 61a6d18..1b1f376 100644
--- a/test/intrinsics/gen/abs/7f28e6.wgsl.expected.glsl
+++ b/test/intrinsics/gen/abs/7f28e6.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   uvec2 res = abs(uvec2(0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   abs_7f28e6();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'abs' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 2-component vector of uint'
@@ -47,19 +34,14 @@
   uvec2 res = abs(uvec2(0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   abs_7f28e6();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'abs' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 2-component vector of uint'
@@ -75,20 +57,15 @@
   uvec2 res = abs(uvec2(0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   abs_7f28e6();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'abs' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 2-component vector of uint'
diff --git a/test/intrinsics/gen/abs/7faa9e.wgsl.expected.glsl b/test/intrinsics/gen/abs/7faa9e.wgsl.expected.glsl
index 668bba9..3a4930f 100644
--- a/test/intrinsics/gen/abs/7faa9e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/abs/7faa9e.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   ivec2 res = abs(ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   abs_7faa9e();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   ivec2 res = abs(ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   abs_7faa9e();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   ivec2 res = abs(ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   abs_7faa9e();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/abs/9c80a6.wgsl.expected.glsl b/test/intrinsics/gen/abs/9c80a6.wgsl.expected.glsl
index c396532..ef48036 100644
--- a/test/intrinsics/gen/abs/9c80a6.wgsl.expected.glsl
+++ b/test/intrinsics/gen/abs/9c80a6.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   ivec4 res = abs(ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   abs_9c80a6();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   ivec4 res = abs(ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   abs_9c80a6();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   ivec4 res = abs(ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   abs_9c80a6();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/abs/b96037.wgsl.expected.glsl b/test/intrinsics/gen/abs/b96037.wgsl.expected.glsl
index f5d5e91..61e09f2 100644
--- a/test/intrinsics/gen/abs/b96037.wgsl.expected.glsl
+++ b/test/intrinsics/gen/abs/b96037.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   float res = abs(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   abs_b96037();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   float res = abs(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   abs_b96037();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   float res = abs(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   abs_b96037();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/acos/489247.wgsl.expected.glsl b/test/intrinsics/gen/acos/489247.wgsl.expected.glsl
index 9b74954..cdaf0f4 100644
--- a/test/intrinsics/gen/acos/489247.wgsl.expected.glsl
+++ b/test/intrinsics/gen/acos/489247.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   float res = acos(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   acos_489247();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   float res = acos(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   acos_489247();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   float res = acos(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   acos_489247();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/acos/8e2acf.wgsl.expected.glsl b/test/intrinsics/gen/acos/8e2acf.wgsl.expected.glsl
index e6d69bd..30c87b8 100644
--- a/test/intrinsics/gen/acos/8e2acf.wgsl.expected.glsl
+++ b/test/intrinsics/gen/acos/8e2acf.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec4 res = acos(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   acos_8e2acf();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec4 res = acos(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   acos_8e2acf();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec4 res = acos(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   acos_8e2acf();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/acos/a610c4.wgsl.expected.glsl b/test/intrinsics/gen/acos/a610c4.wgsl.expected.glsl
index 20c61a6..b913253 100644
--- a/test/intrinsics/gen/acos/a610c4.wgsl.expected.glsl
+++ b/test/intrinsics/gen/acos/a610c4.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec3 res = acos(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   acos_a610c4();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec3 res = acos(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   acos_a610c4();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec3 res = acos(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   acos_a610c4();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/acos/dfc915.wgsl.expected.glsl b/test/intrinsics/gen/acos/dfc915.wgsl.expected.glsl
index 5d54b67..bed9877 100644
--- a/test/intrinsics/gen/acos/dfc915.wgsl.expected.glsl
+++ b/test/intrinsics/gen/acos/dfc915.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec2 res = acos(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   acos_dfc915();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec2 res = acos(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   acos_dfc915();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec2 res = acos(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   acos_dfc915();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/all/353d6a.wgsl.expected.glsl b/test/intrinsics/gen/all/353d6a.wgsl.expected.glsl
index 293dff0..2f202ff 100644
--- a/test/intrinsics/gen/all/353d6a.wgsl.expected.glsl
+++ b/test/intrinsics/gen/all/353d6a.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   bool res = all(false);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   all_353d6a();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'all' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp bool'
@@ -47,19 +34,14 @@
   bool res = all(false);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   all_353d6a();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'all' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp bool'
@@ -75,20 +57,15 @@
   bool res = all(false);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   all_353d6a();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'all' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp bool'
diff --git a/test/intrinsics/gen/all/986c7b.wgsl.expected.glsl b/test/intrinsics/gen/all/986c7b.wgsl.expected.glsl
index 0e91cf6..b4083b8 100644
--- a/test/intrinsics/gen/all/986c7b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/all/986c7b.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   bool res = all(bvec4(false, false, false, false));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   all_986c7b();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   bool res = all(bvec4(false, false, false, false));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   all_986c7b();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   bool res = all(bvec4(false, false, false, false));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   all_986c7b();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/all/bd2dba.wgsl.expected.glsl b/test/intrinsics/gen/all/bd2dba.wgsl.expected.glsl
index 111a40a..65cdde6 100644
--- a/test/intrinsics/gen/all/bd2dba.wgsl.expected.glsl
+++ b/test/intrinsics/gen/all/bd2dba.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   bool res = all(bvec3(false, false, false));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   all_bd2dba();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   bool res = all(bvec3(false, false, false));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   all_bd2dba();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   bool res = all(bvec3(false, false, false));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   all_bd2dba();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/all/f46790.wgsl.expected.glsl b/test/intrinsics/gen/all/f46790.wgsl.expected.glsl
index ca1909a..e664e39 100644
--- a/test/intrinsics/gen/all/f46790.wgsl.expected.glsl
+++ b/test/intrinsics/gen/all/f46790.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   bool res = all(bvec2(false, false));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   all_f46790();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   bool res = all(bvec2(false, false));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   all_f46790();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   bool res = all(bvec2(false, false));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   all_f46790();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/any/083428.wgsl.expected.glsl b/test/intrinsics/gen/any/083428.wgsl.expected.glsl
index 0e3b9ab..3cbe6b3 100644
--- a/test/intrinsics/gen/any/083428.wgsl.expected.glsl
+++ b/test/intrinsics/gen/any/083428.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   bool res = any(bvec4(false, false, false, false));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   any_083428();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   bool res = any(bvec4(false, false, false, false));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   any_083428();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   bool res = any(bvec4(false, false, false, false));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   any_083428();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/any/0e3e58.wgsl.expected.glsl b/test/intrinsics/gen/any/0e3e58.wgsl.expected.glsl
index e2b9708..8d2b299 100644
--- a/test/intrinsics/gen/any/0e3e58.wgsl.expected.glsl
+++ b/test/intrinsics/gen/any/0e3e58.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   bool res = any(bvec2(false, false));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   any_0e3e58();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   bool res = any(bvec2(false, false));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   any_0e3e58();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   bool res = any(bvec2(false, false));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   any_0e3e58();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/any/2ab91a.wgsl.expected.glsl b/test/intrinsics/gen/any/2ab91a.wgsl.expected.glsl
index fcfa374..8fe07e6 100644
--- a/test/intrinsics/gen/any/2ab91a.wgsl.expected.glsl
+++ b/test/intrinsics/gen/any/2ab91a.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   bool res = any(false);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   any_2ab91a();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'any' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp bool'
@@ -47,19 +34,14 @@
   bool res = any(false);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   any_2ab91a();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'any' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp bool'
@@ -75,20 +57,15 @@
   bool res = any(false);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   any_2ab91a();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'any' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp bool'
diff --git a/test/intrinsics/gen/any/e755c1.wgsl.expected.glsl b/test/intrinsics/gen/any/e755c1.wgsl.expected.glsl
index a729c5c..1f443e4 100644
--- a/test/intrinsics/gen/any/e755c1.wgsl.expected.glsl
+++ b/test/intrinsics/gen/any/e755c1.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   bool res = any(bvec3(false, false, false));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   any_e755c1();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   bool res = any(bvec3(false, false, false));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   any_e755c1();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   bool res = any(bvec3(false, false, false));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   any_e755c1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/arrayLength/1588cd.wgsl.expected.glsl b/test/intrinsics/gen/arrayLength/1588cd.wgsl.expected.glsl
index 6b1d6e3..e825ee3 100644
--- a/test/intrinsics/gen/arrayLength/1588cd.wgsl.expected.glsl
+++ b/test/intrinsics/gen/arrayLength/1588cd.wgsl.expected.glsl
@@ -7,37 +7,24 @@
   int arg_0[];
 } sb_ro;
 void arrayLength_1588cd() {
-  uint tint_symbol_2 = 0u;
-  sb_ro.GetDimensions(tint_symbol_2);
-  uint tint_symbol_3 = ((tint_symbol_2 - 0u) / 4u);
-  uint res = tint_symbol_3;
+  uint tint_symbol_1 = 0u;
+  sb_ro.GetDimensions(tint_symbol_1);
+  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
+  uint res = tint_symbol_2;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   arrayLength_1588cd();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:9: 'GetDimensions' : no such field in structure 
 ERROR: 0:9: '' : compilation terminated 
@@ -52,25 +39,20 @@
   int arg_0[];
 } sb_ro;
 void arrayLength_1588cd() {
-  uint tint_symbol_2 = 0u;
-  sb_ro.GetDimensions(tint_symbol_2);
-  uint tint_symbol_3 = ((tint_symbol_2 - 0u) / 4u);
-  uint res = tint_symbol_3;
+  uint tint_symbol_1 = 0u;
+  sb_ro.GetDimensions(tint_symbol_1);
+  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
+  uint res = tint_symbol_2;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   arrayLength_1588cd();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:9: 'GetDimensions' : no such field in structure 
 ERROR: 0:9: '' : compilation terminated 
@@ -85,26 +67,21 @@
   int arg_0[];
 } sb_ro;
 void arrayLength_1588cd() {
-  uint tint_symbol_2 = 0u;
-  sb_ro.GetDimensions(tint_symbol_2);
-  uint tint_symbol_3 = ((tint_symbol_2 - 0u) / 4u);
-  uint res = tint_symbol_3;
+  uint tint_symbol_1 = 0u;
+  sb_ro.GetDimensions(tint_symbol_1);
+  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
+  uint res = tint_symbol_2;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   arrayLength_1588cd();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:9: 'GetDimensions' : no such field in structure 
 ERROR: 0:9: '' : compilation terminated 
diff --git a/test/intrinsics/gen/arrayLength/61b1c7.wgsl.expected.glsl b/test/intrinsics/gen/arrayLength/61b1c7.wgsl.expected.glsl
index 452afab..04d2a2d 100644
--- a/test/intrinsics/gen/arrayLength/61b1c7.wgsl.expected.glsl
+++ b/test/intrinsics/gen/arrayLength/61b1c7.wgsl.expected.glsl
@@ -7,37 +7,24 @@
   int arg_0[];
 } sb_rw;
 void arrayLength_61b1c7() {
-  uint tint_symbol_2 = 0u;
-  sb_rw.GetDimensions(tint_symbol_2);
-  uint tint_symbol_3 = ((tint_symbol_2 - 0u) / 4u);
-  uint res = tint_symbol_3;
+  uint tint_symbol_1 = 0u;
+  sb_rw.GetDimensions(tint_symbol_1);
+  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
+  uint res = tint_symbol_2;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   arrayLength_61b1c7();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:9: 'GetDimensions' : no such field in structure 
 ERROR: 0:9: '' : compilation terminated 
@@ -52,25 +39,20 @@
   int arg_0[];
 } sb_rw;
 void arrayLength_61b1c7() {
-  uint tint_symbol_2 = 0u;
-  sb_rw.GetDimensions(tint_symbol_2);
-  uint tint_symbol_3 = ((tint_symbol_2 - 0u) / 4u);
-  uint res = tint_symbol_3;
+  uint tint_symbol_1 = 0u;
+  sb_rw.GetDimensions(tint_symbol_1);
+  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
+  uint res = tint_symbol_2;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   arrayLength_61b1c7();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:9: 'GetDimensions' : no such field in structure 
 ERROR: 0:9: '' : compilation terminated 
@@ -85,26 +67,21 @@
   int arg_0[];
 } sb_rw;
 void arrayLength_61b1c7() {
-  uint tint_symbol_2 = 0u;
-  sb_rw.GetDimensions(tint_symbol_2);
-  uint tint_symbol_3 = ((tint_symbol_2 - 0u) / 4u);
-  uint res = tint_symbol_3;
+  uint tint_symbol_1 = 0u;
+  sb_rw.GetDimensions(tint_symbol_1);
+  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
+  uint res = tint_symbol_2;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   arrayLength_61b1c7();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:9: 'GetDimensions' : no such field in structure 
 ERROR: 0:9: '' : compilation terminated 
diff --git a/test/intrinsics/gen/arrayLength/a0f5ca.wgsl.expected.glsl b/test/intrinsics/gen/arrayLength/a0f5ca.wgsl.expected.glsl
index 8c76c14..371149b 100644
--- a/test/intrinsics/gen/arrayLength/a0f5ca.wgsl.expected.glsl
+++ b/test/intrinsics/gen/arrayLength/a0f5ca.wgsl.expected.glsl
@@ -7,37 +7,24 @@
   float arg_0[];
 } sb_ro;
 void arrayLength_a0f5ca() {
-  uint tint_symbol_2 = 0u;
-  sb_ro.GetDimensions(tint_symbol_2);
-  uint tint_symbol_3 = ((tint_symbol_2 - 0u) / 4u);
-  uint res = tint_symbol_3;
+  uint tint_symbol_1 = 0u;
+  sb_ro.GetDimensions(tint_symbol_1);
+  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
+  uint res = tint_symbol_2;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   arrayLength_a0f5ca();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:9: 'GetDimensions' : no such field in structure 
 ERROR: 0:9: '' : compilation terminated 
@@ -52,25 +39,20 @@
   float arg_0[];
 } sb_ro;
 void arrayLength_a0f5ca() {
-  uint tint_symbol_2 = 0u;
-  sb_ro.GetDimensions(tint_symbol_2);
-  uint tint_symbol_3 = ((tint_symbol_2 - 0u) / 4u);
-  uint res = tint_symbol_3;
+  uint tint_symbol_1 = 0u;
+  sb_ro.GetDimensions(tint_symbol_1);
+  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
+  uint res = tint_symbol_2;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   arrayLength_a0f5ca();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:9: 'GetDimensions' : no such field in structure 
 ERROR: 0:9: '' : compilation terminated 
@@ -85,26 +67,21 @@
   float arg_0[];
 } sb_ro;
 void arrayLength_a0f5ca() {
-  uint tint_symbol_2 = 0u;
-  sb_ro.GetDimensions(tint_symbol_2);
-  uint tint_symbol_3 = ((tint_symbol_2 - 0u) / 4u);
-  uint res = tint_symbol_3;
+  uint tint_symbol_1 = 0u;
+  sb_ro.GetDimensions(tint_symbol_1);
+  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
+  uint res = tint_symbol_2;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   arrayLength_a0f5ca();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:9: 'GetDimensions' : no such field in structure 
 ERROR: 0:9: '' : compilation terminated 
diff --git a/test/intrinsics/gen/arrayLength/cdd123.wgsl.expected.glsl b/test/intrinsics/gen/arrayLength/cdd123.wgsl.expected.glsl
index fa58e97..3b94383 100644
--- a/test/intrinsics/gen/arrayLength/cdd123.wgsl.expected.glsl
+++ b/test/intrinsics/gen/arrayLength/cdd123.wgsl.expected.glsl
@@ -7,37 +7,24 @@
   float arg_0[];
 } sb_rw;
 void arrayLength_cdd123() {
-  uint tint_symbol_2 = 0u;
-  sb_rw.GetDimensions(tint_symbol_2);
-  uint tint_symbol_3 = ((tint_symbol_2 - 0u) / 4u);
-  uint res = tint_symbol_3;
+  uint tint_symbol_1 = 0u;
+  sb_rw.GetDimensions(tint_symbol_1);
+  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
+  uint res = tint_symbol_2;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   arrayLength_cdd123();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:9: 'GetDimensions' : no such field in structure 
 ERROR: 0:9: '' : compilation terminated 
@@ -52,25 +39,20 @@
   float arg_0[];
 } sb_rw;
 void arrayLength_cdd123() {
-  uint tint_symbol_2 = 0u;
-  sb_rw.GetDimensions(tint_symbol_2);
-  uint tint_symbol_3 = ((tint_symbol_2 - 0u) / 4u);
-  uint res = tint_symbol_3;
+  uint tint_symbol_1 = 0u;
+  sb_rw.GetDimensions(tint_symbol_1);
+  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
+  uint res = tint_symbol_2;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   arrayLength_cdd123();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:9: 'GetDimensions' : no such field in structure 
 ERROR: 0:9: '' : compilation terminated 
@@ -85,26 +67,21 @@
   float arg_0[];
 } sb_rw;
 void arrayLength_cdd123() {
-  uint tint_symbol_2 = 0u;
-  sb_rw.GetDimensions(tint_symbol_2);
-  uint tint_symbol_3 = ((tint_symbol_2 - 0u) / 4u);
-  uint res = tint_symbol_3;
+  uint tint_symbol_1 = 0u;
+  sb_rw.GetDimensions(tint_symbol_1);
+  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
+  uint res = tint_symbol_2;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   arrayLength_cdd123();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:9: 'GetDimensions' : no such field in structure 
 ERROR: 0:9: '' : compilation terminated 
diff --git a/test/intrinsics/gen/arrayLength/cfca0a.wgsl.expected.glsl b/test/intrinsics/gen/arrayLength/cfca0a.wgsl.expected.glsl
index 5ac52d7..a58d713 100644
--- a/test/intrinsics/gen/arrayLength/cfca0a.wgsl.expected.glsl
+++ b/test/intrinsics/gen/arrayLength/cfca0a.wgsl.expected.glsl
@@ -7,37 +7,24 @@
   uint arg_0[];
 } sb_ro;
 void arrayLength_cfca0a() {
-  uint tint_symbol_2 = 0u;
-  sb_ro.GetDimensions(tint_symbol_2);
-  uint tint_symbol_3 = ((tint_symbol_2 - 0u) / 4u);
-  uint res = tint_symbol_3;
+  uint tint_symbol_1 = 0u;
+  sb_ro.GetDimensions(tint_symbol_1);
+  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
+  uint res = tint_symbol_2;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   arrayLength_cfca0a();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:9: 'GetDimensions' : no such field in structure 
 ERROR: 0:9: '' : compilation terminated 
@@ -52,25 +39,20 @@
   uint arg_0[];
 } sb_ro;
 void arrayLength_cfca0a() {
-  uint tint_symbol_2 = 0u;
-  sb_ro.GetDimensions(tint_symbol_2);
-  uint tint_symbol_3 = ((tint_symbol_2 - 0u) / 4u);
-  uint res = tint_symbol_3;
+  uint tint_symbol_1 = 0u;
+  sb_ro.GetDimensions(tint_symbol_1);
+  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
+  uint res = tint_symbol_2;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   arrayLength_cfca0a();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:9: 'GetDimensions' : no such field in structure 
 ERROR: 0:9: '' : compilation terminated 
@@ -85,26 +67,21 @@
   uint arg_0[];
 } sb_ro;
 void arrayLength_cfca0a() {
-  uint tint_symbol_2 = 0u;
-  sb_ro.GetDimensions(tint_symbol_2);
-  uint tint_symbol_3 = ((tint_symbol_2 - 0u) / 4u);
-  uint res = tint_symbol_3;
+  uint tint_symbol_1 = 0u;
+  sb_ro.GetDimensions(tint_symbol_1);
+  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
+  uint res = tint_symbol_2;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   arrayLength_cfca0a();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:9: 'GetDimensions' : no such field in structure 
 ERROR: 0:9: '' : compilation terminated 
diff --git a/test/intrinsics/gen/arrayLength/eb510f.wgsl.expected.glsl b/test/intrinsics/gen/arrayLength/eb510f.wgsl.expected.glsl
index 006963f..758a7c4 100644
--- a/test/intrinsics/gen/arrayLength/eb510f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/arrayLength/eb510f.wgsl.expected.glsl
@@ -7,37 +7,24 @@
   uint arg_0[];
 } sb_rw;
 void arrayLength_eb510f() {
-  uint tint_symbol_2 = 0u;
-  sb_rw.GetDimensions(tint_symbol_2);
-  uint tint_symbol_3 = ((tint_symbol_2 - 0u) / 4u);
-  uint res = tint_symbol_3;
+  uint tint_symbol_1 = 0u;
+  sb_rw.GetDimensions(tint_symbol_1);
+  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
+  uint res = tint_symbol_2;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   arrayLength_eb510f();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:9: 'GetDimensions' : no such field in structure 
 ERROR: 0:9: '' : compilation terminated 
@@ -52,25 +39,20 @@
   uint arg_0[];
 } sb_rw;
 void arrayLength_eb510f() {
-  uint tint_symbol_2 = 0u;
-  sb_rw.GetDimensions(tint_symbol_2);
-  uint tint_symbol_3 = ((tint_symbol_2 - 0u) / 4u);
-  uint res = tint_symbol_3;
+  uint tint_symbol_1 = 0u;
+  sb_rw.GetDimensions(tint_symbol_1);
+  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
+  uint res = tint_symbol_2;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   arrayLength_eb510f();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:9: 'GetDimensions' : no such field in structure 
 ERROR: 0:9: '' : compilation terminated 
@@ -85,26 +67,21 @@
   uint arg_0[];
 } sb_rw;
 void arrayLength_eb510f() {
-  uint tint_symbol_2 = 0u;
-  sb_rw.GetDimensions(tint_symbol_2);
-  uint tint_symbol_3 = ((tint_symbol_2 - 0u) / 4u);
-  uint res = tint_symbol_3;
+  uint tint_symbol_1 = 0u;
+  sb_rw.GetDimensions(tint_symbol_1);
+  uint tint_symbol_2 = ((tint_symbol_1 - 0u) / 4u);
+  uint res = tint_symbol_2;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   arrayLength_eb510f();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:9: 'GetDimensions' : no such field in structure 
 ERROR: 0:9: '' : compilation terminated 
diff --git a/test/intrinsics/gen/asin/064953.wgsl.expected.glsl b/test/intrinsics/gen/asin/064953.wgsl.expected.glsl
index 6f9fb5f..c4e492a 100644
--- a/test/intrinsics/gen/asin/064953.wgsl.expected.glsl
+++ b/test/intrinsics/gen/asin/064953.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec4 res = asin(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   asin_064953();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec4 res = asin(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   asin_064953();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec4 res = asin(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   asin_064953();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/asin/7b6a44.wgsl.expected.glsl b/test/intrinsics/gen/asin/7b6a44.wgsl.expected.glsl
index 3cb463d..a92e9b0 100644
--- a/test/intrinsics/gen/asin/7b6a44.wgsl.expected.glsl
+++ b/test/intrinsics/gen/asin/7b6a44.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec2 res = asin(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   asin_7b6a44();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec2 res = asin(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   asin_7b6a44();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec2 res = asin(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   asin_7b6a44();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/asin/8cd9c9.wgsl.expected.glsl b/test/intrinsics/gen/asin/8cd9c9.wgsl.expected.glsl
index 26ae968..a53d17c 100644
--- a/test/intrinsics/gen/asin/8cd9c9.wgsl.expected.glsl
+++ b/test/intrinsics/gen/asin/8cd9c9.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec3 res = asin(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   asin_8cd9c9();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec3 res = asin(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   asin_8cd9c9();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec3 res = asin(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   asin_8cd9c9();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/asin/c0c272.wgsl.expected.glsl b/test/intrinsics/gen/asin/c0c272.wgsl.expected.glsl
index 46b4799..1b61048 100644
--- a/test/intrinsics/gen/asin/c0c272.wgsl.expected.glsl
+++ b/test/intrinsics/gen/asin/c0c272.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   float res = asin(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   asin_c0c272();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   float res = asin(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   asin_c0c272();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   float res = asin(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   asin_c0c272();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/atan/02979a.wgsl.expected.glsl b/test/intrinsics/gen/atan/02979a.wgsl.expected.glsl
index db1ced4..350248a 100644
--- a/test/intrinsics/gen/atan/02979a.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atan/02979a.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   float res = atan(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   atan_02979a();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   float res = atan(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   atan_02979a();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   float res = atan(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   atan_02979a();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/atan/331e6d.wgsl.expected.glsl b/test/intrinsics/gen/atan/331e6d.wgsl.expected.glsl
index 1f9b3f4..6aae2b6 100644
--- a/test/intrinsics/gen/atan/331e6d.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atan/331e6d.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec3 res = atan(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   atan_331e6d();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec3 res = atan(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   atan_331e6d();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec3 res = atan(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   atan_331e6d();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/atan/a8b696.wgsl.expected.glsl b/test/intrinsics/gen/atan/a8b696.wgsl.expected.glsl
index 68eeb28..6cadae4 100644
--- a/test/intrinsics/gen/atan/a8b696.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atan/a8b696.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec4 res = atan(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   atan_a8b696();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec4 res = atan(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   atan_a8b696();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec4 res = atan(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   atan_a8b696();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/atan/ad96e4.wgsl.expected.glsl b/test/intrinsics/gen/atan/ad96e4.wgsl.expected.glsl
index 80f0885..f4a5686 100644
--- a/test/intrinsics/gen/atan/ad96e4.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atan/ad96e4.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec2 res = atan(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   atan_ad96e4();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec2 res = atan(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   atan_ad96e4();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec2 res = atan(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   atan_ad96e4();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/atan2/57fb13.wgsl.expected.glsl b/test/intrinsics/gen/atan2/57fb13.wgsl.expected.glsl
index c81d3b3..5846e6f 100644
--- a/test/intrinsics/gen/atan2/57fb13.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atan2/57fb13.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec2 res = atan(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   atan2_57fb13();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec2 res = atan(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   atan2_57fb13();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec2 res = atan(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   atan2_57fb13();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/atan2/96057c.wgsl.expected.glsl b/test/intrinsics/gen/atan2/96057c.wgsl.expected.glsl
index 12b8b57..0bfac0c 100644
--- a/test/intrinsics/gen/atan2/96057c.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atan2/96057c.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   float res = atan(1.0f, 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   atan2_96057c();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   float res = atan(1.0f, 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   atan2_96057c();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   float res = atan(1.0f, 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   atan2_96057c();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/atan2/a70d0d.wgsl.expected.glsl b/test/intrinsics/gen/atan2/a70d0d.wgsl.expected.glsl
index ca014e6..6a9fa45 100644
--- a/test/intrinsics/gen/atan2/a70d0d.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atan2/a70d0d.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec3 res = atan(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   atan2_a70d0d();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec3 res = atan(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   atan2_a70d0d();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec3 res = atan(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   atan2_a70d0d();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/atan2/ae713e.wgsl.expected.glsl b/test/intrinsics/gen/atan2/ae713e.wgsl.expected.glsl
index 58481e6..1f50d8b 100644
--- a/test/intrinsics/gen/atan2/ae713e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atan2/ae713e.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec4 res = atan(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   atan2_ae713e();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec4 res = atan(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   atan2_ae713e();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec4 res = atan(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   atan2_ae713e();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/atomicAdd/794055.wgsl.expected.glsl b/test/intrinsics/gen/atomicAdd/794055.wgsl.expected.glsl
index 715d36d..8a41180 100644
--- a/test/intrinsics/gen/atomicAdd/794055.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicAdd/794055.wgsl.expected.glsl
@@ -6,11 +6,7 @@
   int res = atomicAdd(arg_0, 1);
 }
 
-struct tint_symbol_1 {
-  uint local_invocation_index;
-};
-
-void compute_main_inner(uint local_invocation_index) {
+void compute_main(uint local_invocation_index) {
   {
     atomicExchange(arg_0, 0);
   }
@@ -19,15 +15,7 @@
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void compute_main(tint_symbol_1 tint_symbol) {
-  compute_main_inner(tint_symbol.local_invocation_index);
+void main() {
+  compute_main(gl_LocalInvocationIndex);
   return;
 }
-
-
-void main() {
-  tint_symbol_1 inputs;
-  inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
-  compute_main(inputs);
-}
-
diff --git a/test/intrinsics/gen/atomicAdd/8a199a.wgsl.expected.glsl b/test/intrinsics/gen/atomicAdd/8a199a.wgsl.expected.glsl
index a718035..90a451a 100644
--- a/test/intrinsics/gen/atomicAdd/8a199a.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicAdd/8a199a.wgsl.expected.glsl
@@ -14,13 +14,12 @@
 
 void fragment_main() {
   atomicAdd_8a199a();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -35,13 +34,12 @@
   uint res = atomicAdd(sb_rw.arg_0, 1u);
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   atomicAdd_8a199a();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/atomicAdd/d32fe4.wgsl.expected.glsl b/test/intrinsics/gen/atomicAdd/d32fe4.wgsl.expected.glsl
index 6f142ad..df84fcc 100644
--- a/test/intrinsics/gen/atomicAdd/d32fe4.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicAdd/d32fe4.wgsl.expected.glsl
@@ -14,13 +14,12 @@
 
 void fragment_main() {
   atomicAdd_d32fe4();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -35,13 +34,12 @@
   int res = atomicAdd(sb_rw.arg_0, 1);
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   atomicAdd_d32fe4();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/atomicAdd/d5db1d.wgsl.expected.glsl b/test/intrinsics/gen/atomicAdd/d5db1d.wgsl.expected.glsl
index 77ff3cc..e172f7b 100644
--- a/test/intrinsics/gen/atomicAdd/d5db1d.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicAdd/d5db1d.wgsl.expected.glsl
@@ -6,11 +6,7 @@
   uint res = atomicAdd(arg_0, 1u);
 }
 
-struct tint_symbol_1 {
-  uint local_invocation_index;
-};
-
-void compute_main_inner(uint local_invocation_index) {
+void compute_main(uint local_invocation_index) {
   {
     atomicExchange(arg_0, 0u);
   }
@@ -19,15 +15,7 @@
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void compute_main(tint_symbol_1 tint_symbol) {
-  compute_main_inner(tint_symbol.local_invocation_index);
+void main() {
+  compute_main(gl_LocalInvocationIndex);
   return;
 }
-
-
-void main() {
-  tint_symbol_1 inputs;
-  inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
-  compute_main(inputs);
-}
-
diff --git a/test/intrinsics/gen/atomicAnd/152966.wgsl.expected.glsl b/test/intrinsics/gen/atomicAnd/152966.wgsl.expected.glsl
index cb8b590..18330ed 100644
--- a/test/intrinsics/gen/atomicAnd/152966.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicAnd/152966.wgsl.expected.glsl
@@ -14,13 +14,12 @@
 
 void fragment_main() {
   atomicAnd_152966();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -35,13 +34,12 @@
   int res = atomicAnd(sb_rw.arg_0, 1);
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   atomicAnd_152966();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/atomicAnd/34edd3.wgsl.expected.glsl b/test/intrinsics/gen/atomicAnd/34edd3.wgsl.expected.glsl
index 893ba81..eabffe0 100644
--- a/test/intrinsics/gen/atomicAnd/34edd3.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicAnd/34edd3.wgsl.expected.glsl
@@ -6,11 +6,7 @@
   uint res = atomicAnd(arg_0, 1u);
 }
 
-struct tint_symbol_1 {
-  uint local_invocation_index;
-};
-
-void compute_main_inner(uint local_invocation_index) {
+void compute_main(uint local_invocation_index) {
   {
     atomicExchange(arg_0, 0u);
   }
@@ -19,15 +15,7 @@
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void compute_main(tint_symbol_1 tint_symbol) {
-  compute_main_inner(tint_symbol.local_invocation_index);
+void main() {
+  compute_main(gl_LocalInvocationIndex);
   return;
 }
-
-
-void main() {
-  tint_symbol_1 inputs;
-  inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
-  compute_main(inputs);
-}
-
diff --git a/test/intrinsics/gen/atomicAnd/45a819.wgsl.expected.glsl b/test/intrinsics/gen/atomicAnd/45a819.wgsl.expected.glsl
index 29566d1..b953520 100644
--- a/test/intrinsics/gen/atomicAnd/45a819.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicAnd/45a819.wgsl.expected.glsl
@@ -6,11 +6,7 @@
   int res = atomicAnd(arg_0, 1);
 }
 
-struct tint_symbol_1 {
-  uint local_invocation_index;
-};
-
-void compute_main_inner(uint local_invocation_index) {
+void compute_main(uint local_invocation_index) {
   {
     atomicExchange(arg_0, 0);
   }
@@ -19,15 +15,7 @@
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void compute_main(tint_symbol_1 tint_symbol) {
-  compute_main_inner(tint_symbol.local_invocation_index);
+void main() {
+  compute_main(gl_LocalInvocationIndex);
   return;
 }
-
-
-void main() {
-  tint_symbol_1 inputs;
-  inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
-  compute_main(inputs);
-}
-
diff --git a/test/intrinsics/gen/atomicAnd/85a8d9.wgsl.expected.glsl b/test/intrinsics/gen/atomicAnd/85a8d9.wgsl.expected.glsl
index 9260151..63cfda0 100644
--- a/test/intrinsics/gen/atomicAnd/85a8d9.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicAnd/85a8d9.wgsl.expected.glsl
@@ -14,13 +14,12 @@
 
 void fragment_main() {
   atomicAnd_85a8d9();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -35,13 +34,12 @@
   uint res = atomicAnd(sb_rw.arg_0, 1u);
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   atomicAnd_85a8d9();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/atomicCompareExchangeWeak/12871c.wgsl.expected.glsl b/test/intrinsics/gen/atomicCompareExchangeWeak/12871c.wgsl.expected.glsl
index 3d91ea5..718abd1 100644
--- a/test/intrinsics/gen/atomicCompareExchangeWeak/12871c.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicCompareExchangeWeak/12871c.wgsl.expected.glsl
@@ -22,13 +22,12 @@
 
 void fragment_main() {
   atomicCompareExchangeWeak_12871c();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -51,13 +50,12 @@
   ivec2 res = tint_atomicCompareExchangeWeak(sb_rw.arg_0, 1, 1);
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   atomicCompareExchangeWeak_12871c();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/atomicCompareExchangeWeak/6673da.wgsl.expected.glsl b/test/intrinsics/gen/atomicCompareExchangeWeak/6673da.wgsl.expected.glsl
index dd307ae..58433a2 100644
--- a/test/intrinsics/gen/atomicCompareExchangeWeak/6673da.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicCompareExchangeWeak/6673da.wgsl.expected.glsl
@@ -22,13 +22,12 @@
 
 void fragment_main() {
   atomicCompareExchangeWeak_6673da();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -51,13 +50,12 @@
   uvec2 res = tint_atomicCompareExchangeWeak(sb_rw.arg_0, 1u, 1u);
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   atomicCompareExchangeWeak_6673da();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/atomicCompareExchangeWeak/89ea3b.wgsl.expected.glsl b/test/intrinsics/gen/atomicCompareExchangeWeak/89ea3b.wgsl.expected.glsl
index fc9c6e6..bbe2a57 100644
--- a/test/intrinsics/gen/atomicCompareExchangeWeak/89ea3b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicCompareExchangeWeak/89ea3b.wgsl.expected.glsl
@@ -14,11 +14,7 @@
   ivec2 res = tint_atomicCompareExchangeWeak(arg_0, 1, 1);
 }
 
-struct tint_symbol_1 {
-  uint local_invocation_index;
-};
-
-void compute_main_inner(uint local_invocation_index) {
+void compute_main(uint local_invocation_index) {
   {
     atomicExchange(arg_0, 0);
   }
@@ -27,15 +23,7 @@
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void compute_main(tint_symbol_1 tint_symbol) {
-  compute_main_inner(tint_symbol.local_invocation_index);
+void main() {
+  compute_main(gl_LocalInvocationIndex);
   return;
 }
-
-
-void main() {
-  tint_symbol_1 inputs;
-  inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
-  compute_main(inputs);
-}
-
diff --git a/test/intrinsics/gen/atomicCompareExchangeWeak/b2ab2c.wgsl.expected.glsl b/test/intrinsics/gen/atomicCompareExchangeWeak/b2ab2c.wgsl.expected.glsl
index 01162d8..8bf8acb 100644
--- a/test/intrinsics/gen/atomicCompareExchangeWeak/b2ab2c.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicCompareExchangeWeak/b2ab2c.wgsl.expected.glsl
@@ -14,11 +14,7 @@
   uvec2 res = tint_atomicCompareExchangeWeak(arg_0, 1u, 1u);
 }
 
-struct tint_symbol_1 {
-  uint local_invocation_index;
-};
-
-void compute_main_inner(uint local_invocation_index) {
+void compute_main(uint local_invocation_index) {
   {
     atomicExchange(arg_0, 0u);
   }
@@ -27,15 +23,7 @@
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void compute_main(tint_symbol_1 tint_symbol) {
-  compute_main_inner(tint_symbol.local_invocation_index);
+void main() {
+  compute_main(gl_LocalInvocationIndex);
   return;
 }
-
-
-void main() {
-  tint_symbol_1 inputs;
-  inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
-  compute_main(inputs);
-}
-
diff --git a/test/intrinsics/gen/atomicExchange/0a5dca.wgsl.expected.glsl b/test/intrinsics/gen/atomicExchange/0a5dca.wgsl.expected.glsl
index ceb8f2c..2dfde42 100644
--- a/test/intrinsics/gen/atomicExchange/0a5dca.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicExchange/0a5dca.wgsl.expected.glsl
@@ -6,11 +6,7 @@
   uint res = atomicExchange(arg_0, 1u);
 }
 
-struct tint_symbol_1 {
-  uint local_invocation_index;
-};
-
-void compute_main_inner(uint local_invocation_index) {
+void compute_main(uint local_invocation_index) {
   {
     atomicExchange(arg_0, 0u);
   }
@@ -19,15 +15,7 @@
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void compute_main(tint_symbol_1 tint_symbol) {
-  compute_main_inner(tint_symbol.local_invocation_index);
+void main() {
+  compute_main(gl_LocalInvocationIndex);
   return;
 }
-
-
-void main() {
-  tint_symbol_1 inputs;
-  inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
-  compute_main(inputs);
-}
-
diff --git a/test/intrinsics/gen/atomicExchange/d59712.wgsl.expected.glsl b/test/intrinsics/gen/atomicExchange/d59712.wgsl.expected.glsl
index c8aeb19..144ff7f 100644
--- a/test/intrinsics/gen/atomicExchange/d59712.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicExchange/d59712.wgsl.expected.glsl
@@ -14,13 +14,12 @@
 
 void fragment_main() {
   atomicExchange_d59712();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -35,13 +34,12 @@
   uint res = atomicExchange(sb_rw.arg_0, 1u);
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   atomicExchange_d59712();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/atomicExchange/e114ba.wgsl.expected.glsl b/test/intrinsics/gen/atomicExchange/e114ba.wgsl.expected.glsl
index 02874fa..ddc73bf 100644
--- a/test/intrinsics/gen/atomicExchange/e114ba.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicExchange/e114ba.wgsl.expected.glsl
@@ -6,11 +6,7 @@
   int res = atomicExchange(arg_0, 1);
 }
 
-struct tint_symbol_1 {
-  uint local_invocation_index;
-};
-
-void compute_main_inner(uint local_invocation_index) {
+void compute_main(uint local_invocation_index) {
   {
     atomicExchange(arg_0, 0);
   }
@@ -19,15 +15,7 @@
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void compute_main(tint_symbol_1 tint_symbol) {
-  compute_main_inner(tint_symbol.local_invocation_index);
+void main() {
+  compute_main(gl_LocalInvocationIndex);
   return;
 }
-
-
-void main() {
-  tint_symbol_1 inputs;
-  inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
-  compute_main(inputs);
-}
-
diff --git a/test/intrinsics/gen/atomicExchange/f2e22f.wgsl.expected.glsl b/test/intrinsics/gen/atomicExchange/f2e22f.wgsl.expected.glsl
index 89206eb..cad28eb 100644
--- a/test/intrinsics/gen/atomicExchange/f2e22f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicExchange/f2e22f.wgsl.expected.glsl
@@ -14,13 +14,12 @@
 
 void fragment_main() {
   atomicExchange_f2e22f();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -35,13 +34,12 @@
   int res = atomicExchange(sb_rw.arg_0, 1);
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   atomicExchange_f2e22f();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/atomicLoad/0806ad.wgsl.expected.glsl b/test/intrinsics/gen/atomicLoad/0806ad.wgsl.expected.glsl
index e8ec1aa..a76e496 100644
--- a/test/intrinsics/gen/atomicLoad/0806ad.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicLoad/0806ad.wgsl.expected.glsl
@@ -14,13 +14,12 @@
 
 void fragment_main() {
   atomicLoad_0806ad();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -35,13 +34,12 @@
   int res = atomicOr(sb_rw.arg_0, 0);
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   atomicLoad_0806ad();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/atomicLoad/361bf1.wgsl.expected.glsl b/test/intrinsics/gen/atomicLoad/361bf1.wgsl.expected.glsl
index ec67ef6..f694157 100644
--- a/test/intrinsics/gen/atomicLoad/361bf1.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicLoad/361bf1.wgsl.expected.glsl
@@ -6,11 +6,7 @@
   uint res = atomicOr(arg_0, 0u);
 }
 
-struct tint_symbol_1 {
-  uint local_invocation_index;
-};
-
-void compute_main_inner(uint local_invocation_index) {
+void compute_main(uint local_invocation_index) {
   {
     atomicExchange(arg_0, 0u);
   }
@@ -19,15 +15,7 @@
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void compute_main(tint_symbol_1 tint_symbol) {
-  compute_main_inner(tint_symbol.local_invocation_index);
+void main() {
+  compute_main(gl_LocalInvocationIndex);
   return;
 }
-
-
-void main() {
-  tint_symbol_1 inputs;
-  inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
-  compute_main(inputs);
-}
-
diff --git a/test/intrinsics/gen/atomicLoad/afcc03.wgsl.expected.glsl b/test/intrinsics/gen/atomicLoad/afcc03.wgsl.expected.glsl
index f4c5fdc..5623e5a 100644
--- a/test/intrinsics/gen/atomicLoad/afcc03.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicLoad/afcc03.wgsl.expected.glsl
@@ -6,11 +6,7 @@
   int res = atomicOr(arg_0, 0);
 }
 
-struct tint_symbol_1 {
-  uint local_invocation_index;
-};
-
-void compute_main_inner(uint local_invocation_index) {
+void compute_main(uint local_invocation_index) {
   {
     atomicExchange(arg_0, 0);
   }
@@ -19,15 +15,7 @@
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void compute_main(tint_symbol_1 tint_symbol) {
-  compute_main_inner(tint_symbol.local_invocation_index);
+void main() {
+  compute_main(gl_LocalInvocationIndex);
   return;
 }
-
-
-void main() {
-  tint_symbol_1 inputs;
-  inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
-  compute_main(inputs);
-}
-
diff --git a/test/intrinsics/gen/atomicLoad/fe6cc3.wgsl.expected.glsl b/test/intrinsics/gen/atomicLoad/fe6cc3.wgsl.expected.glsl
index 315bfe3..b7a75c0 100644
--- a/test/intrinsics/gen/atomicLoad/fe6cc3.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicLoad/fe6cc3.wgsl.expected.glsl
@@ -14,13 +14,12 @@
 
 void fragment_main() {
   atomicLoad_fe6cc3();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -35,13 +34,12 @@
   uint res = atomicOr(sb_rw.arg_0, 0u);
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   atomicLoad_fe6cc3();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/atomicMax/51b9be.wgsl.expected.glsl b/test/intrinsics/gen/atomicMax/51b9be.wgsl.expected.glsl
index 2a92b96..16d8fb4 100644
--- a/test/intrinsics/gen/atomicMax/51b9be.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicMax/51b9be.wgsl.expected.glsl
@@ -14,13 +14,12 @@
 
 void fragment_main() {
   atomicMax_51b9be();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -35,13 +34,12 @@
   uint res = atomicMax(sb_rw.arg_0, 1u);
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   atomicMax_51b9be();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/atomicMax/92aa72.wgsl.expected.glsl b/test/intrinsics/gen/atomicMax/92aa72.wgsl.expected.glsl
index 953c280..9811e87 100644
--- a/test/intrinsics/gen/atomicMax/92aa72.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicMax/92aa72.wgsl.expected.glsl
@@ -14,13 +14,12 @@
 
 void fragment_main() {
   atomicMax_92aa72();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -35,13 +34,12 @@
   int res = atomicMax(sb_rw.arg_0, 1);
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   atomicMax_92aa72();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/atomicMax/a89cc3.wgsl.expected.glsl b/test/intrinsics/gen/atomicMax/a89cc3.wgsl.expected.glsl
index bda8cf5..9721ba0 100644
--- a/test/intrinsics/gen/atomicMax/a89cc3.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicMax/a89cc3.wgsl.expected.glsl
@@ -6,11 +6,7 @@
   int res = atomicMax(arg_0, 1);
 }
 
-struct tint_symbol_1 {
-  uint local_invocation_index;
-};
-
-void compute_main_inner(uint local_invocation_index) {
+void compute_main(uint local_invocation_index) {
   {
     atomicExchange(arg_0, 0);
   }
@@ -19,15 +15,7 @@
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void compute_main(tint_symbol_1 tint_symbol) {
-  compute_main_inner(tint_symbol.local_invocation_index);
+void main() {
+  compute_main(gl_LocalInvocationIndex);
   return;
 }
-
-
-void main() {
-  tint_symbol_1 inputs;
-  inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
-  compute_main(inputs);
-}
-
diff --git a/test/intrinsics/gen/atomicMax/beccfc.wgsl.expected.glsl b/test/intrinsics/gen/atomicMax/beccfc.wgsl.expected.glsl
index 7ff699c..02c3171 100644
--- a/test/intrinsics/gen/atomicMax/beccfc.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicMax/beccfc.wgsl.expected.glsl
@@ -6,11 +6,7 @@
   uint res = atomicMax(arg_0, 1u);
 }
 
-struct tint_symbol_1 {
-  uint local_invocation_index;
-};
-
-void compute_main_inner(uint local_invocation_index) {
+void compute_main(uint local_invocation_index) {
   {
     atomicExchange(arg_0, 0u);
   }
@@ -19,15 +15,7 @@
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void compute_main(tint_symbol_1 tint_symbol) {
-  compute_main_inner(tint_symbol.local_invocation_index);
+void main() {
+  compute_main(gl_LocalInvocationIndex);
   return;
 }
-
-
-void main() {
-  tint_symbol_1 inputs;
-  inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
-  compute_main(inputs);
-}
-
diff --git a/test/intrinsics/gen/atomicMin/278235.wgsl.expected.glsl b/test/intrinsics/gen/atomicMin/278235.wgsl.expected.glsl
index 924c3e5..4e84d71 100644
--- a/test/intrinsics/gen/atomicMin/278235.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicMin/278235.wgsl.expected.glsl
@@ -6,11 +6,7 @@
   int res = atomicMin(arg_0, 1);
 }
 
-struct tint_symbol_1 {
-  uint local_invocation_index;
-};
-
-void compute_main_inner(uint local_invocation_index) {
+void compute_main(uint local_invocation_index) {
   {
     atomicExchange(arg_0, 0);
   }
@@ -19,15 +15,7 @@
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void compute_main(tint_symbol_1 tint_symbol) {
-  compute_main_inner(tint_symbol.local_invocation_index);
+void main() {
+  compute_main(gl_LocalInvocationIndex);
   return;
 }
-
-
-void main() {
-  tint_symbol_1 inputs;
-  inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
-  compute_main(inputs);
-}
-
diff --git a/test/intrinsics/gen/atomicMin/69d383.wgsl.expected.glsl b/test/intrinsics/gen/atomicMin/69d383.wgsl.expected.glsl
index f872cf3..6dfcb0d 100644
--- a/test/intrinsics/gen/atomicMin/69d383.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicMin/69d383.wgsl.expected.glsl
@@ -6,11 +6,7 @@
   uint res = atomicMin(arg_0, 1u);
 }
 
-struct tint_symbol_1 {
-  uint local_invocation_index;
-};
-
-void compute_main_inner(uint local_invocation_index) {
+void compute_main(uint local_invocation_index) {
   {
     atomicExchange(arg_0, 0u);
   }
@@ -19,15 +15,7 @@
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void compute_main(tint_symbol_1 tint_symbol) {
-  compute_main_inner(tint_symbol.local_invocation_index);
+void main() {
+  compute_main(gl_LocalInvocationIndex);
   return;
 }
-
-
-void main() {
-  tint_symbol_1 inputs;
-  inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
-  compute_main(inputs);
-}
-
diff --git a/test/intrinsics/gen/atomicMin/8e38dc.wgsl.expected.glsl b/test/intrinsics/gen/atomicMin/8e38dc.wgsl.expected.glsl
index 3ef1cad..43a6e16 100644
--- a/test/intrinsics/gen/atomicMin/8e38dc.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicMin/8e38dc.wgsl.expected.glsl
@@ -14,13 +14,12 @@
 
 void fragment_main() {
   atomicMin_8e38dc();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -35,13 +34,12 @@
   int res = atomicMin(sb_rw.arg_0, 1);
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   atomicMin_8e38dc();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/atomicMin/c67a74.wgsl.expected.glsl b/test/intrinsics/gen/atomicMin/c67a74.wgsl.expected.glsl
index 007cfa1..42143c6 100644
--- a/test/intrinsics/gen/atomicMin/c67a74.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicMin/c67a74.wgsl.expected.glsl
@@ -14,13 +14,12 @@
 
 void fragment_main() {
   atomicMin_c67a74();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -35,13 +34,12 @@
   uint res = atomicMin(sb_rw.arg_0, 1u);
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   atomicMin_c67a74();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/atomicOr/5e3d61.wgsl.expected.glsl b/test/intrinsics/gen/atomicOr/5e3d61.wgsl.expected.glsl
index 2da57b8..7e349a9 100644
--- a/test/intrinsics/gen/atomicOr/5e3d61.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicOr/5e3d61.wgsl.expected.glsl
@@ -6,11 +6,7 @@
   uint res = atomicOr(arg_0, 1u);
 }
 
-struct tint_symbol_1 {
-  uint local_invocation_index;
-};
-
-void compute_main_inner(uint local_invocation_index) {
+void compute_main(uint local_invocation_index) {
   {
     atomicExchange(arg_0, 0u);
   }
@@ -19,15 +15,7 @@
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void compute_main(tint_symbol_1 tint_symbol) {
-  compute_main_inner(tint_symbol.local_invocation_index);
+void main() {
+  compute_main(gl_LocalInvocationIndex);
   return;
 }
-
-
-void main() {
-  tint_symbol_1 inputs;
-  inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
-  compute_main(inputs);
-}
-
diff --git a/test/intrinsics/gen/atomicOr/5e95d4.wgsl.expected.glsl b/test/intrinsics/gen/atomicOr/5e95d4.wgsl.expected.glsl
index e0066d7..ecde95d 100644
--- a/test/intrinsics/gen/atomicOr/5e95d4.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicOr/5e95d4.wgsl.expected.glsl
@@ -14,13 +14,12 @@
 
 void fragment_main() {
   atomicOr_5e95d4();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -35,13 +34,12 @@
   uint res = atomicOr(sb_rw.arg_0, 1u);
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   atomicOr_5e95d4();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/atomicOr/8d96a0.wgsl.expected.glsl b/test/intrinsics/gen/atomicOr/8d96a0.wgsl.expected.glsl
index 6e2be73..049e089 100644
--- a/test/intrinsics/gen/atomicOr/8d96a0.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicOr/8d96a0.wgsl.expected.glsl
@@ -14,13 +14,12 @@
 
 void fragment_main() {
   atomicOr_8d96a0();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -35,13 +34,12 @@
   int res = atomicOr(sb_rw.arg_0, 1);
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   atomicOr_8d96a0();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/atomicOr/d09248.wgsl.expected.glsl b/test/intrinsics/gen/atomicOr/d09248.wgsl.expected.glsl
index c2ab6ca..5d831d1 100644
--- a/test/intrinsics/gen/atomicOr/d09248.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicOr/d09248.wgsl.expected.glsl
@@ -6,11 +6,7 @@
   int res = atomicOr(arg_0, 1);
 }
 
-struct tint_symbol_1 {
-  uint local_invocation_index;
-};
-
-void compute_main_inner(uint local_invocation_index) {
+void compute_main(uint local_invocation_index) {
   {
     atomicExchange(arg_0, 0);
   }
@@ -19,15 +15,7 @@
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void compute_main(tint_symbol_1 tint_symbol) {
-  compute_main_inner(tint_symbol.local_invocation_index);
+void main() {
+  compute_main(gl_LocalInvocationIndex);
   return;
 }
-
-
-void main() {
-  tint_symbol_1 inputs;
-  inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
-  compute_main(inputs);
-}
-
diff --git a/test/intrinsics/gen/atomicStore/726882.wgsl.expected.glsl b/test/intrinsics/gen/atomicStore/726882.wgsl.expected.glsl
index 4810df6..29be3dc 100644
--- a/test/intrinsics/gen/atomicStore/726882.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicStore/726882.wgsl.expected.glsl
@@ -6,11 +6,7 @@
   atomicExchange(arg_0, 1u);
 }
 
-struct tint_symbol_1 {
-  uint local_invocation_index;
-};
-
-void compute_main_inner(uint local_invocation_index) {
+void compute_main(uint local_invocation_index) {
   {
     atomicExchange(arg_0, 0u);
   }
@@ -19,15 +15,7 @@
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void compute_main(tint_symbol_1 tint_symbol) {
-  compute_main_inner(tint_symbol.local_invocation_index);
+void main() {
+  compute_main(gl_LocalInvocationIndex);
   return;
 }
-
-
-void main() {
-  tint_symbol_1 inputs;
-  inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
-  compute_main(inputs);
-}
-
diff --git a/test/intrinsics/gen/atomicStore/8bea94.wgsl.expected.glsl b/test/intrinsics/gen/atomicStore/8bea94.wgsl.expected.glsl
index 5c11b81..d24fcba 100644
--- a/test/intrinsics/gen/atomicStore/8bea94.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicStore/8bea94.wgsl.expected.glsl
@@ -6,11 +6,7 @@
   atomicExchange(arg_0, 1);
 }
 
-struct tint_symbol_1 {
-  uint local_invocation_index;
-};
-
-void compute_main_inner(uint local_invocation_index) {
+void compute_main(uint local_invocation_index) {
   {
     atomicExchange(arg_0, 0);
   }
@@ -19,15 +15,7 @@
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void compute_main(tint_symbol_1 tint_symbol) {
-  compute_main_inner(tint_symbol.local_invocation_index);
+void main() {
+  compute_main(gl_LocalInvocationIndex);
   return;
 }
-
-
-void main() {
-  tint_symbol_1 inputs;
-  inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
-  compute_main(inputs);
-}
-
diff --git a/test/intrinsics/gen/atomicStore/cdc29e.wgsl.expected.glsl b/test/intrinsics/gen/atomicStore/cdc29e.wgsl.expected.glsl
index 1e0429d..d31459d 100644
--- a/test/intrinsics/gen/atomicStore/cdc29e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicStore/cdc29e.wgsl.expected.glsl
@@ -14,13 +14,12 @@
 
 void fragment_main() {
   atomicStore_cdc29e();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -35,13 +34,12 @@
   atomicExchange(sb_rw.arg_0, 1u);
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   atomicStore_cdc29e();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/atomicStore/d1e9a6.wgsl.expected.glsl b/test/intrinsics/gen/atomicStore/d1e9a6.wgsl.expected.glsl
index ac7fa98..7f0ccd6 100644
--- a/test/intrinsics/gen/atomicStore/d1e9a6.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicStore/d1e9a6.wgsl.expected.glsl
@@ -14,13 +14,12 @@
 
 void fragment_main() {
   atomicStore_d1e9a6();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -35,13 +34,12 @@
   atomicExchange(sb_rw.arg_0, 1);
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   atomicStore_d1e9a6();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/atomicSub/051100.wgsl.expected.glsl b/test/intrinsics/gen/atomicSub/051100.wgsl.expected.glsl
index bc8a2ee..bf4dc03 100644
--- a/test/intrinsics/gen/atomicSub/051100.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicSub/051100.wgsl.expected.glsl
@@ -14,13 +14,12 @@
 
 void fragment_main() {
   atomicSub_051100();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -35,13 +34,12 @@
   int res = atomicAdd(sb_rw.arg_0, 1);
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   atomicSub_051100();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/atomicSub/0d26c2.wgsl.expected.glsl b/test/intrinsics/gen/atomicSub/0d26c2.wgsl.expected.glsl
index f17a4f3..63ebf58 100644
--- a/test/intrinsics/gen/atomicSub/0d26c2.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicSub/0d26c2.wgsl.expected.glsl
@@ -6,11 +6,7 @@
   uint res = atomicAdd(arg_0, 1u);
 }
 
-struct tint_symbol_1 {
-  uint local_invocation_index;
-};
-
-void compute_main_inner(uint local_invocation_index) {
+void compute_main(uint local_invocation_index) {
   {
     atomicExchange(arg_0, 0u);
   }
@@ -19,15 +15,7 @@
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void compute_main(tint_symbol_1 tint_symbol) {
-  compute_main_inner(tint_symbol.local_invocation_index);
+void main() {
+  compute_main(gl_LocalInvocationIndex);
   return;
 }
-
-
-void main() {
-  tint_symbol_1 inputs;
-  inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
-  compute_main(inputs);
-}
-
diff --git a/test/intrinsics/gen/atomicSub/15bfc9.wgsl.expected.glsl b/test/intrinsics/gen/atomicSub/15bfc9.wgsl.expected.glsl
index 118bced..82d64e2 100644
--- a/test/intrinsics/gen/atomicSub/15bfc9.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicSub/15bfc9.wgsl.expected.glsl
@@ -14,13 +14,12 @@
 
 void fragment_main() {
   atomicSub_15bfc9();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -35,13 +34,12 @@
   uint res = atomicAdd(sb_rw.arg_0, 1u);
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   atomicSub_15bfc9();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/atomicSub/77883a.wgsl.expected.glsl b/test/intrinsics/gen/atomicSub/77883a.wgsl.expected.glsl
index c8331da..7c136f5 100644
--- a/test/intrinsics/gen/atomicSub/77883a.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicSub/77883a.wgsl.expected.glsl
@@ -6,11 +6,7 @@
   int res = atomicAdd(arg_0, 1);
 }
 
-struct tint_symbol_1 {
-  uint local_invocation_index;
-};
-
-void compute_main_inner(uint local_invocation_index) {
+void compute_main(uint local_invocation_index) {
   {
     atomicExchange(arg_0, 0);
   }
@@ -19,15 +15,7 @@
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void compute_main(tint_symbol_1 tint_symbol) {
-  compute_main_inner(tint_symbol.local_invocation_index);
+void main() {
+  compute_main(gl_LocalInvocationIndex);
   return;
 }
-
-
-void main() {
-  tint_symbol_1 inputs;
-  inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
-  compute_main(inputs);
-}
-
diff --git a/test/intrinsics/gen/atomicXor/54510e.wgsl.expected.glsl b/test/intrinsics/gen/atomicXor/54510e.wgsl.expected.glsl
index 931dcf1..6353458 100644
--- a/test/intrinsics/gen/atomicXor/54510e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicXor/54510e.wgsl.expected.glsl
@@ -14,13 +14,12 @@
 
 void fragment_main() {
   atomicXor_54510e();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -35,13 +34,12 @@
   uint res = atomicXor(sb_rw.arg_0, 1u);
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   atomicXor_54510e();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/atomicXor/75dc95.wgsl.expected.glsl b/test/intrinsics/gen/atomicXor/75dc95.wgsl.expected.glsl
index 464b9e7..15b9972 100644
--- a/test/intrinsics/gen/atomicXor/75dc95.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicXor/75dc95.wgsl.expected.glsl
@@ -6,11 +6,7 @@
   int res = atomicXor(arg_0, 1);
 }
 
-struct tint_symbol_1 {
-  uint local_invocation_index;
-};
-
-void compute_main_inner(uint local_invocation_index) {
+void compute_main(uint local_invocation_index) {
   {
     atomicExchange(arg_0, 0);
   }
@@ -19,15 +15,7 @@
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void compute_main(tint_symbol_1 tint_symbol) {
-  compute_main_inner(tint_symbol.local_invocation_index);
+void main() {
+  compute_main(gl_LocalInvocationIndex);
   return;
 }
-
-
-void main() {
-  tint_symbol_1 inputs;
-  inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
-  compute_main(inputs);
-}
-
diff --git a/test/intrinsics/gen/atomicXor/c1b78c.wgsl.expected.glsl b/test/intrinsics/gen/atomicXor/c1b78c.wgsl.expected.glsl
index f91c27b..f48a364 100644
--- a/test/intrinsics/gen/atomicXor/c1b78c.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicXor/c1b78c.wgsl.expected.glsl
@@ -14,13 +14,12 @@
 
 void fragment_main() {
   atomicXor_c1b78c();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -35,13 +34,12 @@
   int res = atomicXor(sb_rw.arg_0, 1);
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   atomicXor_c1b78c();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/atomicXor/c8e6be.wgsl.expected.glsl b/test/intrinsics/gen/atomicXor/c8e6be.wgsl.expected.glsl
index 209ec0b..6d3a6f7 100644
--- a/test/intrinsics/gen/atomicXor/c8e6be.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicXor/c8e6be.wgsl.expected.glsl
@@ -6,11 +6,7 @@
   uint res = atomicXor(arg_0, 1u);
 }
 
-struct tint_symbol_1 {
-  uint local_invocation_index;
-};
-
-void compute_main_inner(uint local_invocation_index) {
+void compute_main(uint local_invocation_index) {
   {
     atomicExchange(arg_0, 0u);
   }
@@ -19,15 +15,7 @@
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void compute_main(tint_symbol_1 tint_symbol) {
-  compute_main_inner(tint_symbol.local_invocation_index);
+void main() {
+  compute_main(gl_LocalInvocationIndex);
   return;
 }
-
-
-void main() {
-  tint_symbol_1 inputs;
-  inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
-  compute_main(inputs);
-}
-
diff --git a/test/intrinsics/gen/ceil/34064b.wgsl.expected.glsl b/test/intrinsics/gen/ceil/34064b.wgsl.expected.glsl
index 7fb4dc5..4e1806e 100644
--- a/test/intrinsics/gen/ceil/34064b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/ceil/34064b.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec3 res = ceil(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   ceil_34064b();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec3 res = ceil(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   ceil_34064b();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec3 res = ceil(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   ceil_34064b();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/ceil/678655.wgsl.expected.glsl b/test/intrinsics/gen/ceil/678655.wgsl.expected.glsl
index bf97f96..e66c6ea 100644
--- a/test/intrinsics/gen/ceil/678655.wgsl.expected.glsl
+++ b/test/intrinsics/gen/ceil/678655.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   float res = ceil(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   ceil_678655();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   float res = ceil(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   ceil_678655();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   float res = ceil(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   ceil_678655();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/ceil/96f597.wgsl.expected.glsl b/test/intrinsics/gen/ceil/96f597.wgsl.expected.glsl
index 52ced7b..5ca7044 100644
--- a/test/intrinsics/gen/ceil/96f597.wgsl.expected.glsl
+++ b/test/intrinsics/gen/ceil/96f597.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec2 res = ceil(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   ceil_96f597();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec2 res = ceil(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   ceil_96f597();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec2 res = ceil(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   ceil_96f597();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/ceil/b74c16.wgsl.expected.glsl b/test/intrinsics/gen/ceil/b74c16.wgsl.expected.glsl
index 1a3cac6..b020c55 100644
--- a/test/intrinsics/gen/ceil/b74c16.wgsl.expected.glsl
+++ b/test/intrinsics/gen/ceil/b74c16.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec4 res = ceil(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   ceil_b74c16();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec4 res = ceil(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   ceil_b74c16();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec4 res = ceil(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   ceil_b74c16();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/clamp/0acf8f.wgsl.expected.glsl b/test/intrinsics/gen/clamp/0acf8f.wgsl.expected.glsl
index 103572c..8c38d2a 100644
--- a/test/intrinsics/gen/clamp/0acf8f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/clamp/0acf8f.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec2 res = clamp(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   clamp_0acf8f();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec2 res = clamp(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   clamp_0acf8f();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec2 res = clamp(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   clamp_0acf8f();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/clamp/1a32e3.wgsl.expected.glsl b/test/intrinsics/gen/clamp/1a32e3.wgsl.expected.glsl
index a2abc65..5f87b77 100644
--- a/test/intrinsics/gen/clamp/1a32e3.wgsl.expected.glsl
+++ b/test/intrinsics/gen/clamp/1a32e3.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   ivec4 res = clamp(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   clamp_1a32e3();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   ivec4 res = clamp(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   clamp_1a32e3();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   ivec4 res = clamp(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   clamp_1a32e3();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/clamp/2bd567.wgsl.expected.glsl b/test/intrinsics/gen/clamp/2bd567.wgsl.expected.glsl
index 73faf97..59947a6 100644
--- a/test/intrinsics/gen/clamp/2bd567.wgsl.expected.glsl
+++ b/test/intrinsics/gen/clamp/2bd567.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   float res = clamp(1.0f, 1.0f, 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   clamp_2bd567();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   float res = clamp(1.0f, 1.0f, 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   clamp_2bd567();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   float res = clamp(1.0f, 1.0f, 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   clamp_2bd567();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/clamp/2bde41.wgsl.expected.glsl b/test/intrinsics/gen/clamp/2bde41.wgsl.expected.glsl
index ed22707..2739432 100644
--- a/test/intrinsics/gen/clamp/2bde41.wgsl.expected.glsl
+++ b/test/intrinsics/gen/clamp/2bde41.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec4 res = clamp(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   clamp_2bde41();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec4 res = clamp(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   clamp_2bde41();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec4 res = clamp(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   clamp_2bde41();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/clamp/548fc7.wgsl.expected.glsl b/test/intrinsics/gen/clamp/548fc7.wgsl.expected.glsl
index 9bdda9e..4986e45 100644
--- a/test/intrinsics/gen/clamp/548fc7.wgsl.expected.glsl
+++ b/test/intrinsics/gen/clamp/548fc7.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   uvec3 res = clamp(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   clamp_548fc7();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   uvec3 res = clamp(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   clamp_548fc7();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   uvec3 res = clamp(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   clamp_548fc7();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/clamp/5f0819.wgsl.expected.glsl b/test/intrinsics/gen/clamp/5f0819.wgsl.expected.glsl
index 42ae5f6..1068aeb 100644
--- a/test/intrinsics/gen/clamp/5f0819.wgsl.expected.glsl
+++ b/test/intrinsics/gen/clamp/5f0819.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   ivec3 res = clamp(ivec3(0, 0, 0), ivec3(0, 0, 0), ivec3(0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   clamp_5f0819();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   ivec3 res = clamp(ivec3(0, 0, 0), ivec3(0, 0, 0), ivec3(0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   clamp_5f0819();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   ivec3 res = clamp(ivec3(0, 0, 0), ivec3(0, 0, 0), ivec3(0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   clamp_5f0819();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/clamp/6c1749.wgsl.expected.glsl b/test/intrinsics/gen/clamp/6c1749.wgsl.expected.glsl
index 37b11b6..2f4bb90 100644
--- a/test/intrinsics/gen/clamp/6c1749.wgsl.expected.glsl
+++ b/test/intrinsics/gen/clamp/6c1749.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   ivec2 res = clamp(ivec2(0, 0), ivec2(0, 0), ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   clamp_6c1749();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   ivec2 res = clamp(ivec2(0, 0), ivec2(0, 0), ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   clamp_6c1749();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   ivec2 res = clamp(ivec2(0, 0), ivec2(0, 0), ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   clamp_6c1749();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/clamp/7706d7.wgsl.expected.glsl b/test/intrinsics/gen/clamp/7706d7.wgsl.expected.glsl
index 2b225ed..1786de2 100644
--- a/test/intrinsics/gen/clamp/7706d7.wgsl.expected.glsl
+++ b/test/intrinsics/gen/clamp/7706d7.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   uvec2 res = clamp(uvec2(0u, 0u), uvec2(0u, 0u), uvec2(0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   clamp_7706d7();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   uvec2 res = clamp(uvec2(0u, 0u), uvec2(0u, 0u), uvec2(0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   clamp_7706d7();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   uvec2 res = clamp(uvec2(0u, 0u), uvec2(0u, 0u), uvec2(0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   clamp_7706d7();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/clamp/867397.wgsl.expected.glsl b/test/intrinsics/gen/clamp/867397.wgsl.expected.glsl
index 7f078f6..722a50b 100644
--- a/test/intrinsics/gen/clamp/867397.wgsl.expected.glsl
+++ b/test/intrinsics/gen/clamp/867397.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec3 res = clamp(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   clamp_867397();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec3 res = clamp(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   clamp_867397();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec3 res = clamp(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   clamp_867397();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/clamp/a2de25.wgsl.expected.glsl b/test/intrinsics/gen/clamp/a2de25.wgsl.expected.glsl
index dc2ca1e..8a62404 100644
--- a/test/intrinsics/gen/clamp/a2de25.wgsl.expected.glsl
+++ b/test/intrinsics/gen/clamp/a2de25.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   uint res = clamp(1u, 1u, 1u);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   clamp_a2de25();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   uint res = clamp(1u, 1u, 1u);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   clamp_a2de25();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   uint res = clamp(1u, 1u, 1u);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   clamp_a2de25();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/clamp/b07c65.wgsl.expected.glsl b/test/intrinsics/gen/clamp/b07c65.wgsl.expected.glsl
index a9e6199..ece23a6 100644
--- a/test/intrinsics/gen/clamp/b07c65.wgsl.expected.glsl
+++ b/test/intrinsics/gen/clamp/b07c65.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   int res = clamp(1, 1, 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   clamp_b07c65();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   int res = clamp(1, 1, 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   clamp_b07c65();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   int res = clamp(1, 1, 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   clamp_b07c65();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/clamp/bd43ce.wgsl.expected.glsl b/test/intrinsics/gen/clamp/bd43ce.wgsl.expected.glsl
index 8cde9f3..5206a82 100644
--- a/test/intrinsics/gen/clamp/bd43ce.wgsl.expected.glsl
+++ b/test/intrinsics/gen/clamp/bd43ce.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   uvec4 res = clamp(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   clamp_bd43ce();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   uvec4 res = clamp(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   clamp_bd43ce();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   uvec4 res = clamp(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   clamp_bd43ce();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/cos/16dc15.wgsl.expected.glsl b/test/intrinsics/gen/cos/16dc15.wgsl.expected.glsl
index 68bc55b..9f3d3d9 100644
--- a/test/intrinsics/gen/cos/16dc15.wgsl.expected.glsl
+++ b/test/intrinsics/gen/cos/16dc15.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec3 res = cos(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   cos_16dc15();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec3 res = cos(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   cos_16dc15();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec3 res = cos(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   cos_16dc15();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/cos/29d66d.wgsl.expected.glsl b/test/intrinsics/gen/cos/29d66d.wgsl.expected.glsl
index 775dbf3..6a2cdd0 100644
--- a/test/intrinsics/gen/cos/29d66d.wgsl.expected.glsl
+++ b/test/intrinsics/gen/cos/29d66d.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec4 res = cos(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   cos_29d66d();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec4 res = cos(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   cos_29d66d();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec4 res = cos(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   cos_29d66d();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/cos/c3b486.wgsl.expected.glsl b/test/intrinsics/gen/cos/c3b486.wgsl.expected.glsl
index 49b902e..b1c05c5 100644
--- a/test/intrinsics/gen/cos/c3b486.wgsl.expected.glsl
+++ b/test/intrinsics/gen/cos/c3b486.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec2 res = cos(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   cos_c3b486();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec2 res = cos(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   cos_c3b486();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec2 res = cos(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   cos_c3b486();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/cos/c5c28e.wgsl.expected.glsl b/test/intrinsics/gen/cos/c5c28e.wgsl.expected.glsl
index bd2d098..5a3dc87 100644
--- a/test/intrinsics/gen/cos/c5c28e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/cos/c5c28e.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   float res = cos(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   cos_c5c28e();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   float res = cos(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   cos_c5c28e();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   float res = cos(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   cos_c5c28e();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/cosh/377652.wgsl.expected.glsl b/test/intrinsics/gen/cosh/377652.wgsl.expected.glsl
index 7771255..37e79fb 100644
--- a/test/intrinsics/gen/cosh/377652.wgsl.expected.glsl
+++ b/test/intrinsics/gen/cosh/377652.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec3 res = cosh(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   cosh_377652();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec3 res = cosh(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   cosh_377652();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec3 res = cosh(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   cosh_377652();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/cosh/c13756.wgsl.expected.glsl b/test/intrinsics/gen/cosh/c13756.wgsl.expected.glsl
index 475471e..e142266 100644
--- a/test/intrinsics/gen/cosh/c13756.wgsl.expected.glsl
+++ b/test/intrinsics/gen/cosh/c13756.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec2 res = cosh(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   cosh_c13756();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec2 res = cosh(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   cosh_c13756();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec2 res = cosh(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   cosh_c13756();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/cosh/da92dd.wgsl.expected.glsl b/test/intrinsics/gen/cosh/da92dd.wgsl.expected.glsl
index 76744dd..0e4ce95 100644
--- a/test/intrinsics/gen/cosh/da92dd.wgsl.expected.glsl
+++ b/test/intrinsics/gen/cosh/da92dd.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   float res = cosh(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   cosh_da92dd();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   float res = cosh(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   cosh_da92dd();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   float res = cosh(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   cosh_da92dd();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/cosh/e0c1de.wgsl.expected.glsl b/test/intrinsics/gen/cosh/e0c1de.wgsl.expected.glsl
index 7e6890e..9b4cf6c 100644
--- a/test/intrinsics/gen/cosh/e0c1de.wgsl.expected.glsl
+++ b/test/intrinsics/gen/cosh/e0c1de.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec4 res = cosh(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   cosh_e0c1de();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec4 res = cosh(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   cosh_e0c1de();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec4 res = cosh(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   cosh_e0c1de();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/countOneBits/0d0e46.wgsl.expected.glsl b/test/intrinsics/gen/countOneBits/0d0e46.wgsl.expected.glsl
index dec129c..f799d3c 100644
--- a/test/intrinsics/gen/countOneBits/0d0e46.wgsl.expected.glsl
+++ b/test/intrinsics/gen/countOneBits/0d0e46.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   uvec4 res = countbits(uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   countOneBits_0d0e46();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'countbits' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 4-component vector of uint'
@@ -47,19 +34,14 @@
   uvec4 res = countbits(uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   countOneBits_0d0e46();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'countbits' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of uint'
@@ -75,20 +57,15 @@
   uvec4 res = countbits(uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   countOneBits_0d0e46();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'countbits' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 4-component vector of uint'
diff --git a/test/intrinsics/gen/countOneBits/0f7980.wgsl.expected.glsl b/test/intrinsics/gen/countOneBits/0f7980.wgsl.expected.glsl
index 15fdfff..09551c3 100644
--- a/test/intrinsics/gen/countOneBits/0f7980.wgsl.expected.glsl
+++ b/test/intrinsics/gen/countOneBits/0f7980.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   ivec4 res = countbits(ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   countOneBits_0f7980();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'countbits' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 4-component vector of int'
@@ -47,19 +34,14 @@
   ivec4 res = countbits(ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   countOneBits_0f7980();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'countbits' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of int'
@@ -75,20 +57,15 @@
   ivec4 res = countbits(ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   countOneBits_0f7980();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'countbits' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 4-component vector of int'
diff --git a/test/intrinsics/gen/countOneBits/65d2ae.wgsl.expected.glsl b/test/intrinsics/gen/countOneBits/65d2ae.wgsl.expected.glsl
index 7baeb62..038da22 100644
--- a/test/intrinsics/gen/countOneBits/65d2ae.wgsl.expected.glsl
+++ b/test/intrinsics/gen/countOneBits/65d2ae.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   ivec3 res = countbits(ivec3(0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   countOneBits_65d2ae();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'countbits' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 3-component vector of int'
@@ -47,19 +34,14 @@
   ivec3 res = countbits(ivec3(0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   countOneBits_65d2ae();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'countbits' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 3-component vector of int'
@@ -75,20 +57,15 @@
   ivec3 res = countbits(ivec3(0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   countOneBits_65d2ae();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'countbits' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 3-component vector of int'
diff --git a/test/intrinsics/gen/countOneBits/690cfc.wgsl.expected.glsl b/test/intrinsics/gen/countOneBits/690cfc.wgsl.expected.glsl
index c876810..268f4a8 100644
--- a/test/intrinsics/gen/countOneBits/690cfc.wgsl.expected.glsl
+++ b/test/intrinsics/gen/countOneBits/690cfc.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   uvec3 res = countbits(uvec3(0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   countOneBits_690cfc();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'countbits' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 3-component vector of uint'
@@ -47,19 +34,14 @@
   uvec3 res = countbits(uvec3(0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   countOneBits_690cfc();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'countbits' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 3-component vector of uint'
@@ -75,20 +57,15 @@
   uvec3 res = countbits(uvec3(0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   countOneBits_690cfc();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'countbits' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 3-component vector of uint'
diff --git a/test/intrinsics/gen/countOneBits/94fd81.wgsl.expected.glsl b/test/intrinsics/gen/countOneBits/94fd81.wgsl.expected.glsl
index 08a12e8..631db9a 100644
--- a/test/intrinsics/gen/countOneBits/94fd81.wgsl.expected.glsl
+++ b/test/intrinsics/gen/countOneBits/94fd81.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   uvec2 res = countbits(uvec2(0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   countOneBits_94fd81();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'countbits' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 2-component vector of uint'
@@ -47,19 +34,14 @@
   uvec2 res = countbits(uvec2(0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   countOneBits_94fd81();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'countbits' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 2-component vector of uint'
@@ -75,20 +57,15 @@
   uvec2 res = countbits(uvec2(0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   countOneBits_94fd81();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'countbits' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 2-component vector of uint'
diff --git a/test/intrinsics/gen/countOneBits/ae44f9.wgsl.expected.glsl b/test/intrinsics/gen/countOneBits/ae44f9.wgsl.expected.glsl
index 851ae33..9286553 100644
--- a/test/intrinsics/gen/countOneBits/ae44f9.wgsl.expected.glsl
+++ b/test/intrinsics/gen/countOneBits/ae44f9.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   uint res = countbits(1u);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   countOneBits_ae44f9();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'countbits' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp uint'
@@ -47,19 +34,14 @@
   uint res = countbits(1u);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   countOneBits_ae44f9();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'countbits' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump uint'
@@ -75,20 +57,15 @@
   uint res = countbits(1u);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   countOneBits_ae44f9();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'countbits' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp uint'
diff --git a/test/intrinsics/gen/countOneBits/af90e2.wgsl.expected.glsl b/test/intrinsics/gen/countOneBits/af90e2.wgsl.expected.glsl
index 80fe35e..d1907d4 100644
--- a/test/intrinsics/gen/countOneBits/af90e2.wgsl.expected.glsl
+++ b/test/intrinsics/gen/countOneBits/af90e2.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   ivec2 res = countbits(ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   countOneBits_af90e2();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'countbits' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 2-component vector of int'
@@ -47,19 +34,14 @@
   ivec2 res = countbits(ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   countOneBits_af90e2();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'countbits' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 2-component vector of int'
@@ -75,20 +57,15 @@
   ivec2 res = countbits(ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   countOneBits_af90e2();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'countbits' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 2-component vector of int'
diff --git a/test/intrinsics/gen/countOneBits/fd88b2.wgsl.expected.glsl b/test/intrinsics/gen/countOneBits/fd88b2.wgsl.expected.glsl
index 0ef55de..b2342c0 100644
--- a/test/intrinsics/gen/countOneBits/fd88b2.wgsl.expected.glsl
+++ b/test/intrinsics/gen/countOneBits/fd88b2.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   int res = countbits(1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   countOneBits_fd88b2();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'countbits' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
@@ -47,19 +34,14 @@
   int res = countbits(1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   countOneBits_fd88b2();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'countbits' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump int'
@@ -75,20 +57,15 @@
   int res = countbits(1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   countOneBits_fd88b2();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'countbits' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
diff --git a/test/intrinsics/gen/cross/041cb0.wgsl.expected.glsl b/test/intrinsics/gen/cross/041cb0.wgsl.expected.glsl
index 64fad74..cf3ac75 100644
--- a/test/intrinsics/gen/cross/041cb0.wgsl.expected.glsl
+++ b/test/intrinsics/gen/cross/041cb0.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec3 res = cross(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   cross_041cb0();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec3 res = cross(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   cross_041cb0();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec3 res = cross(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   cross_041cb0();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/degrees/0d170c.wgsl.expected.glsl b/test/intrinsics/gen/degrees/0d170c.wgsl.expected.glsl
index 55c0c7a..2f88843 100644
--- a/test/intrinsics/gen/degrees/0d170c.wgsl.expected.glsl
+++ b/test/intrinsics/gen/degrees/0d170c.wgsl.expected.glsl
@@ -10,31 +10,18 @@
   vec4 res = tint_degrees(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   degrees_0d170c();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -47,19 +34,14 @@
   vec4 res = tint_degrees(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   degrees_0d170c();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -72,17 +54,12 @@
   vec4 res = tint_degrees(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   degrees_0d170c();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/degrees/1ad5df.wgsl.expected.glsl b/test/intrinsics/gen/degrees/1ad5df.wgsl.expected.glsl
index dd18b3b..6e29dfc 100644
--- a/test/intrinsics/gen/degrees/1ad5df.wgsl.expected.glsl
+++ b/test/intrinsics/gen/degrees/1ad5df.wgsl.expected.glsl
@@ -10,31 +10,18 @@
   vec2 res = tint_degrees(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   degrees_1ad5df();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -47,19 +34,14 @@
   vec2 res = tint_degrees(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   degrees_1ad5df();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -72,17 +54,12 @@
   vec2 res = tint_degrees(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   degrees_1ad5df();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/degrees/2af623.wgsl.expected.glsl b/test/intrinsics/gen/degrees/2af623.wgsl.expected.glsl
index 447c798..2658861 100644
--- a/test/intrinsics/gen/degrees/2af623.wgsl.expected.glsl
+++ b/test/intrinsics/gen/degrees/2af623.wgsl.expected.glsl
@@ -10,31 +10,18 @@
   vec3 res = tint_degrees(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   degrees_2af623();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -47,19 +34,14 @@
   vec3 res = tint_degrees(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   degrees_2af623();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -72,17 +54,12 @@
   vec3 res = tint_degrees(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   degrees_2af623();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/degrees/51f705.wgsl.expected.glsl b/test/intrinsics/gen/degrees/51f705.wgsl.expected.glsl
index 5135deb..373fffb 100644
--- a/test/intrinsics/gen/degrees/51f705.wgsl.expected.glsl
+++ b/test/intrinsics/gen/degrees/51f705.wgsl.expected.glsl
@@ -10,31 +10,18 @@
   float res = tint_degrees(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   degrees_51f705();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -47,19 +34,14 @@
   float res = tint_degrees(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   degrees_51f705();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -72,17 +54,12 @@
   float res = tint_degrees(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   degrees_51f705();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/determinant/2b62ba.wgsl.expected.glsl b/test/intrinsics/gen/determinant/2b62ba.wgsl.expected.glsl
index b72337e..4d8147a 100644
--- a/test/intrinsics/gen/determinant/2b62ba.wgsl.expected.glsl
+++ b/test/intrinsics/gen/determinant/2b62ba.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   float res = determinant(mat3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   determinant_2b62ba();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   float res = determinant(mat3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   determinant_2b62ba();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   float res = determinant(mat3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   determinant_2b62ba();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/determinant/a0a87c.wgsl.expected.glsl b/test/intrinsics/gen/determinant/a0a87c.wgsl.expected.glsl
index f8b510f..f2a5f4e 100644
--- a/test/intrinsics/gen/determinant/a0a87c.wgsl.expected.glsl
+++ b/test/intrinsics/gen/determinant/a0a87c.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   float res = determinant(mat4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   determinant_a0a87c();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   float res = determinant(mat4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   determinant_a0a87c();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   float res = determinant(mat4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   determinant_a0a87c();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/determinant/e19305.wgsl.expected.glsl b/test/intrinsics/gen/determinant/e19305.wgsl.expected.glsl
index fc32243..474b179 100644
--- a/test/intrinsics/gen/determinant/e19305.wgsl.expected.glsl
+++ b/test/intrinsics/gen/determinant/e19305.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   float res = determinant(mat2(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   determinant_e19305();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   float res = determinant(mat2(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   determinant_e19305();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   float res = determinant(mat2(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   determinant_e19305();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/distance/0657d4.wgsl.expected.glsl b/test/intrinsics/gen/distance/0657d4.wgsl.expected.glsl
index a3c576e..d0d4773 100644
--- a/test/intrinsics/gen/distance/0657d4.wgsl.expected.glsl
+++ b/test/intrinsics/gen/distance/0657d4.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   float res = distance(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   distance_0657d4();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   float res = distance(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   distance_0657d4();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   float res = distance(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   distance_0657d4();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/distance/9646ea.wgsl.expected.glsl b/test/intrinsics/gen/distance/9646ea.wgsl.expected.glsl
index 0924832..2b4b8d4 100644
--- a/test/intrinsics/gen/distance/9646ea.wgsl.expected.glsl
+++ b/test/intrinsics/gen/distance/9646ea.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   float res = distance(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   distance_9646ea();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   float res = distance(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   distance_9646ea();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   float res = distance(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   distance_9646ea();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/distance/aa4055.wgsl.expected.glsl b/test/intrinsics/gen/distance/aa4055.wgsl.expected.glsl
index 9d95357..a49d96f 100644
--- a/test/intrinsics/gen/distance/aa4055.wgsl.expected.glsl
+++ b/test/intrinsics/gen/distance/aa4055.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   float res = distance(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   distance_aa4055();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   float res = distance(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   distance_aa4055();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   float res = distance(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   distance_aa4055();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/distance/cfed73.wgsl.expected.glsl b/test/intrinsics/gen/distance/cfed73.wgsl.expected.glsl
index 5b5a6bf..b6471a6 100644
--- a/test/intrinsics/gen/distance/cfed73.wgsl.expected.glsl
+++ b/test/intrinsics/gen/distance/cfed73.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   float res = distance(1.0f, 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   distance_cfed73();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   float res = distance(1.0f, 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   distance_cfed73();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   float res = distance(1.0f, 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   distance_cfed73();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/dot/0c577b.wgsl.expected.glsl b/test/intrinsics/gen/dot/0c577b.wgsl.expected.glsl
index 27d3e7a..13a2f4e 100644
--- a/test/intrinsics/gen/dot/0c577b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/dot/0c577b.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   float res = dot(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   dot_0c577b();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   float res = dot(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   dot_0c577b();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   float res = dot(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   dot_0c577b();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/dot/7548a0.wgsl.expected.glsl b/test/intrinsics/gen/dot/7548a0.wgsl.expected.glsl
index 66d877d..3c22476 100644
--- a/test/intrinsics/gen/dot/7548a0.wgsl.expected.glsl
+++ b/test/intrinsics/gen/dot/7548a0.wgsl.expected.glsl
@@ -9,31 +9,18 @@
   uint res = tint_int_dot(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   dot_7548a0();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -45,19 +32,14 @@
   uint res = tint_int_dot(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   dot_7548a0();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -69,17 +51,12 @@
   uint res = tint_int_dot(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   dot_7548a0();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/dot/883f0e.wgsl.expected.glsl b/test/intrinsics/gen/dot/883f0e.wgsl.expected.glsl
index f58fa99..32578f4 100644
--- a/test/intrinsics/gen/dot/883f0e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/dot/883f0e.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   float res = dot(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   dot_883f0e();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   float res = dot(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   dot_883f0e();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   float res = dot(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   dot_883f0e();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/dot/97c7ee.wgsl.expected.glsl b/test/intrinsics/gen/dot/97c7ee.wgsl.expected.glsl
index 090d242..92ff745 100644
--- a/test/intrinsics/gen/dot/97c7ee.wgsl.expected.glsl
+++ b/test/intrinsics/gen/dot/97c7ee.wgsl.expected.glsl
@@ -9,31 +9,18 @@
   uint res = tint_int_dot(uvec2(0u, 0u), uvec2(0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   dot_97c7ee();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -45,19 +32,14 @@
   uint res = tint_int_dot(uvec2(0u, 0u), uvec2(0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   dot_97c7ee();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -69,17 +51,12 @@
   uint res = tint_int_dot(uvec2(0u, 0u), uvec2(0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   dot_97c7ee();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/dot/ba4246.wgsl.expected.glsl b/test/intrinsics/gen/dot/ba4246.wgsl.expected.glsl
index f8c73a8..0c6c025 100644
--- a/test/intrinsics/gen/dot/ba4246.wgsl.expected.glsl
+++ b/test/intrinsics/gen/dot/ba4246.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   float res = dot(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   dot_ba4246();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   float res = dot(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   dot_ba4246();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   float res = dot(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   dot_ba4246();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/dot/e994c7.wgsl.expected.glsl b/test/intrinsics/gen/dot/e994c7.wgsl.expected.glsl
index 058ea47..5916d1a 100644
--- a/test/intrinsics/gen/dot/e994c7.wgsl.expected.glsl
+++ b/test/intrinsics/gen/dot/e994c7.wgsl.expected.glsl
@@ -9,31 +9,18 @@
   uint res = tint_int_dot(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   dot_e994c7();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -45,19 +32,14 @@
   uint res = tint_int_dot(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   dot_e994c7();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -69,17 +51,12 @@
   uint res = tint_int_dot(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   dot_e994c7();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/dot/ef6b1d.wgsl.expected.glsl b/test/intrinsics/gen/dot/ef6b1d.wgsl.expected.glsl
index da0f7b0..34d8bf5 100644
--- a/test/intrinsics/gen/dot/ef6b1d.wgsl.expected.glsl
+++ b/test/intrinsics/gen/dot/ef6b1d.wgsl.expected.glsl
@@ -9,31 +9,18 @@
   int res = tint_int_dot(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   dot_ef6b1d();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -45,19 +32,14 @@
   int res = tint_int_dot(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   dot_ef6b1d();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -69,17 +51,12 @@
   int res = tint_int_dot(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   dot_ef6b1d();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/dot/f1312c.wgsl.expected.glsl b/test/intrinsics/gen/dot/f1312c.wgsl.expected.glsl
index 66e776e..f217684 100644
--- a/test/intrinsics/gen/dot/f1312c.wgsl.expected.glsl
+++ b/test/intrinsics/gen/dot/f1312c.wgsl.expected.glsl
@@ -9,31 +9,18 @@
   int res = tint_int_dot(ivec3(0, 0, 0), ivec3(0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   dot_f1312c();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -45,19 +32,14 @@
   int res = tint_int_dot(ivec3(0, 0, 0), ivec3(0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   dot_f1312c();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -69,17 +51,12 @@
   int res = tint_int_dot(ivec3(0, 0, 0), ivec3(0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   dot_f1312c();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/dot/fc5f7c.wgsl.expected.glsl b/test/intrinsics/gen/dot/fc5f7c.wgsl.expected.glsl
index 3397372..5ad787d 100644
--- a/test/intrinsics/gen/dot/fc5f7c.wgsl.expected.glsl
+++ b/test/intrinsics/gen/dot/fc5f7c.wgsl.expected.glsl
@@ -9,31 +9,18 @@
   int res = tint_int_dot(ivec2(0, 0), ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   dot_fc5f7c();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -45,19 +32,14 @@
   int res = tint_int_dot(ivec2(0, 0), ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   dot_fc5f7c();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -69,17 +51,12 @@
   int res = tint_int_dot(ivec2(0, 0), ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   dot_fc5f7c();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/dpdx/0763f7.wgsl.expected.glsl b/test/intrinsics/gen/dpdx/0763f7.wgsl.expected.glsl
index 3751632..aa208f6 100644
--- a/test/intrinsics/gen/dpdx/0763f7.wgsl.expected.glsl
+++ b/test/intrinsics/gen/dpdx/0763f7.wgsl.expected.glsl
@@ -9,13 +9,12 @@
 
 void fragment_main() {
   dpdx_0763f7();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'ddx' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 3-component vector of float'
diff --git a/test/intrinsics/gen/dpdx/99edb1.wgsl.expected.glsl b/test/intrinsics/gen/dpdx/99edb1.wgsl.expected.glsl
index 3ed75b4..b13abff 100644
--- a/test/intrinsics/gen/dpdx/99edb1.wgsl.expected.glsl
+++ b/test/intrinsics/gen/dpdx/99edb1.wgsl.expected.glsl
@@ -9,13 +9,12 @@
 
 void fragment_main() {
   dpdx_99edb1();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'ddx' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 2-component vector of float'
diff --git a/test/intrinsics/gen/dpdx/c487fa.wgsl.expected.glsl b/test/intrinsics/gen/dpdx/c487fa.wgsl.expected.glsl
index 3c5dee0..26f405a 100644
--- a/test/intrinsics/gen/dpdx/c487fa.wgsl.expected.glsl
+++ b/test/intrinsics/gen/dpdx/c487fa.wgsl.expected.glsl
@@ -9,13 +9,12 @@
 
 void fragment_main() {
   dpdx_c487fa();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'ddx' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of float'
diff --git a/test/intrinsics/gen/dpdx/e263de.wgsl.expected.glsl b/test/intrinsics/gen/dpdx/e263de.wgsl.expected.glsl
index 9748587..7f76d6c 100644
--- a/test/intrinsics/gen/dpdx/e263de.wgsl.expected.glsl
+++ b/test/intrinsics/gen/dpdx/e263de.wgsl.expected.glsl
@@ -9,13 +9,12 @@
 
 void fragment_main() {
   dpdx_e263de();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'ddx' : no matching overloaded function found 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/intrinsics/gen/dpdxCoarse/029152.wgsl.expected.glsl b/test/intrinsics/gen/dpdxCoarse/029152.wgsl.expected.glsl
index 312c91d..2f6680f 100644
--- a/test/intrinsics/gen/dpdxCoarse/029152.wgsl.expected.glsl
+++ b/test/intrinsics/gen/dpdxCoarse/029152.wgsl.expected.glsl
@@ -9,13 +9,12 @@
 
 void fragment_main() {
   dpdxCoarse_029152();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'ddx_coarse' : no matching overloaded function found 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/intrinsics/gen/dpdxCoarse/9581cf.wgsl.expected.glsl b/test/intrinsics/gen/dpdxCoarse/9581cf.wgsl.expected.glsl
index 5144cdc..3b186ca 100644
--- a/test/intrinsics/gen/dpdxCoarse/9581cf.wgsl.expected.glsl
+++ b/test/intrinsics/gen/dpdxCoarse/9581cf.wgsl.expected.glsl
@@ -9,13 +9,12 @@
 
 void fragment_main() {
   dpdxCoarse_9581cf();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'ddx_coarse' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 2-component vector of float'
diff --git a/test/intrinsics/gen/dpdxCoarse/c28641.wgsl.expected.glsl b/test/intrinsics/gen/dpdxCoarse/c28641.wgsl.expected.glsl
index 316a740..ffd01ad 100644
--- a/test/intrinsics/gen/dpdxCoarse/c28641.wgsl.expected.glsl
+++ b/test/intrinsics/gen/dpdxCoarse/c28641.wgsl.expected.glsl
@@ -9,13 +9,12 @@
 
 void fragment_main() {
   dpdxCoarse_c28641();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'ddx_coarse' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of float'
diff --git a/test/intrinsics/gen/dpdxCoarse/f64d7b.wgsl.expected.glsl b/test/intrinsics/gen/dpdxCoarse/f64d7b.wgsl.expected.glsl
index 165c98a..4b28cfd 100644
--- a/test/intrinsics/gen/dpdxCoarse/f64d7b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/dpdxCoarse/f64d7b.wgsl.expected.glsl
@@ -9,13 +9,12 @@
 
 void fragment_main() {
   dpdxCoarse_f64d7b();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'ddx_coarse' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 3-component vector of float'
diff --git a/test/intrinsics/gen/dpdxFine/8c5069.wgsl.expected.glsl b/test/intrinsics/gen/dpdxFine/8c5069.wgsl.expected.glsl
index 9849f53..bc8ba98 100644
--- a/test/intrinsics/gen/dpdxFine/8c5069.wgsl.expected.glsl
+++ b/test/intrinsics/gen/dpdxFine/8c5069.wgsl.expected.glsl
@@ -9,13 +9,12 @@
 
 void fragment_main() {
   dpdxFine_8c5069();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'ddx_fine' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of float'
diff --git a/test/intrinsics/gen/dpdxFine/9631de.wgsl.expected.glsl b/test/intrinsics/gen/dpdxFine/9631de.wgsl.expected.glsl
index 1b7f55c..dfa83bb 100644
--- a/test/intrinsics/gen/dpdxFine/9631de.wgsl.expected.glsl
+++ b/test/intrinsics/gen/dpdxFine/9631de.wgsl.expected.glsl
@@ -9,13 +9,12 @@
 
 void fragment_main() {
   dpdxFine_9631de();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'ddx_fine' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 2-component vector of float'
diff --git a/test/intrinsics/gen/dpdxFine/f401a2.wgsl.expected.glsl b/test/intrinsics/gen/dpdxFine/f401a2.wgsl.expected.glsl
index e808df6..6772e22 100644
--- a/test/intrinsics/gen/dpdxFine/f401a2.wgsl.expected.glsl
+++ b/test/intrinsics/gen/dpdxFine/f401a2.wgsl.expected.glsl
@@ -9,13 +9,12 @@
 
 void fragment_main() {
   dpdxFine_f401a2();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'ddx_fine' : no matching overloaded function found 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/intrinsics/gen/dpdxFine/f92fb6.wgsl.expected.glsl b/test/intrinsics/gen/dpdxFine/f92fb6.wgsl.expected.glsl
index 4148812..93a16c6 100644
--- a/test/intrinsics/gen/dpdxFine/f92fb6.wgsl.expected.glsl
+++ b/test/intrinsics/gen/dpdxFine/f92fb6.wgsl.expected.glsl
@@ -9,13 +9,12 @@
 
 void fragment_main() {
   dpdxFine_f92fb6();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'ddx_fine' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 3-component vector of float'
diff --git a/test/intrinsics/gen/dpdy/699a05.wgsl.expected.glsl b/test/intrinsics/gen/dpdy/699a05.wgsl.expected.glsl
index 5af0963..8c51b31 100644
--- a/test/intrinsics/gen/dpdy/699a05.wgsl.expected.glsl
+++ b/test/intrinsics/gen/dpdy/699a05.wgsl.expected.glsl
@@ -9,13 +9,12 @@
 
 void fragment_main() {
   dpdy_699a05();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'ddy' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of float'
diff --git a/test/intrinsics/gen/dpdy/7f8d84.wgsl.expected.glsl b/test/intrinsics/gen/dpdy/7f8d84.wgsl.expected.glsl
index 83f9149..3436842 100644
--- a/test/intrinsics/gen/dpdy/7f8d84.wgsl.expected.glsl
+++ b/test/intrinsics/gen/dpdy/7f8d84.wgsl.expected.glsl
@@ -9,13 +9,12 @@
 
 void fragment_main() {
   dpdy_7f8d84();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'ddy' : no matching overloaded function found 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/intrinsics/gen/dpdy/a8b56e.wgsl.expected.glsl b/test/intrinsics/gen/dpdy/a8b56e.wgsl.expected.glsl
index 77cb336..e0e1546 100644
--- a/test/intrinsics/gen/dpdy/a8b56e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/dpdy/a8b56e.wgsl.expected.glsl
@@ -9,13 +9,12 @@
 
 void fragment_main() {
   dpdy_a8b56e();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'ddy' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 2-component vector of float'
diff --git a/test/intrinsics/gen/dpdy/feb40f.wgsl.expected.glsl b/test/intrinsics/gen/dpdy/feb40f.wgsl.expected.glsl
index 93993fb..9a3c7a4 100644
--- a/test/intrinsics/gen/dpdy/feb40f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/dpdy/feb40f.wgsl.expected.glsl
@@ -9,13 +9,12 @@
 
 void fragment_main() {
   dpdy_feb40f();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'ddy' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 3-component vector of float'
diff --git a/test/intrinsics/gen/dpdyCoarse/3e1ab4.wgsl.expected.glsl b/test/intrinsics/gen/dpdyCoarse/3e1ab4.wgsl.expected.glsl
index acc10ce..0c6f009 100644
--- a/test/intrinsics/gen/dpdyCoarse/3e1ab4.wgsl.expected.glsl
+++ b/test/intrinsics/gen/dpdyCoarse/3e1ab4.wgsl.expected.glsl
@@ -9,13 +9,12 @@
 
 void fragment_main() {
   dpdyCoarse_3e1ab4();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'ddy_coarse' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 2-component vector of float'
diff --git a/test/intrinsics/gen/dpdyCoarse/445d24.wgsl.expected.glsl b/test/intrinsics/gen/dpdyCoarse/445d24.wgsl.expected.glsl
index faccad9..5b059cd 100644
--- a/test/intrinsics/gen/dpdyCoarse/445d24.wgsl.expected.glsl
+++ b/test/intrinsics/gen/dpdyCoarse/445d24.wgsl.expected.glsl
@@ -9,13 +9,12 @@
 
 void fragment_main() {
   dpdyCoarse_445d24();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'ddy_coarse' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of float'
diff --git a/test/intrinsics/gen/dpdyCoarse/870a7e.wgsl.expected.glsl b/test/intrinsics/gen/dpdyCoarse/870a7e.wgsl.expected.glsl
index 42ddd72..95d1c31 100644
--- a/test/intrinsics/gen/dpdyCoarse/870a7e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/dpdyCoarse/870a7e.wgsl.expected.glsl
@@ -9,13 +9,12 @@
 
 void fragment_main() {
   dpdyCoarse_870a7e();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'ddy_coarse' : no matching overloaded function found 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/intrinsics/gen/dpdyCoarse/ae1873.wgsl.expected.glsl b/test/intrinsics/gen/dpdyCoarse/ae1873.wgsl.expected.glsl
index 9d4bb1c..b9a2ea4 100644
--- a/test/intrinsics/gen/dpdyCoarse/ae1873.wgsl.expected.glsl
+++ b/test/intrinsics/gen/dpdyCoarse/ae1873.wgsl.expected.glsl
@@ -9,13 +9,12 @@
 
 void fragment_main() {
   dpdyCoarse_ae1873();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'ddy_coarse' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 3-component vector of float'
diff --git a/test/intrinsics/gen/dpdyFine/1fb7ab.wgsl.expected.glsl b/test/intrinsics/gen/dpdyFine/1fb7ab.wgsl.expected.glsl
index 339d386..b041522 100644
--- a/test/intrinsics/gen/dpdyFine/1fb7ab.wgsl.expected.glsl
+++ b/test/intrinsics/gen/dpdyFine/1fb7ab.wgsl.expected.glsl
@@ -9,13 +9,12 @@
 
 void fragment_main() {
   dpdyFine_1fb7ab();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'ddy_fine' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 3-component vector of float'
diff --git a/test/intrinsics/gen/dpdyFine/6eb673.wgsl.expected.glsl b/test/intrinsics/gen/dpdyFine/6eb673.wgsl.expected.glsl
index f616661..9b7fd4c 100644
--- a/test/intrinsics/gen/dpdyFine/6eb673.wgsl.expected.glsl
+++ b/test/intrinsics/gen/dpdyFine/6eb673.wgsl.expected.glsl
@@ -9,13 +9,12 @@
 
 void fragment_main() {
   dpdyFine_6eb673();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'ddy_fine' : no matching overloaded function found 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/intrinsics/gen/dpdyFine/d0a648.wgsl.expected.glsl b/test/intrinsics/gen/dpdyFine/d0a648.wgsl.expected.glsl
index ad75956..8f51695 100644
--- a/test/intrinsics/gen/dpdyFine/d0a648.wgsl.expected.glsl
+++ b/test/intrinsics/gen/dpdyFine/d0a648.wgsl.expected.glsl
@@ -9,13 +9,12 @@
 
 void fragment_main() {
   dpdyFine_d0a648();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'ddy_fine' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of float'
diff --git a/test/intrinsics/gen/dpdyFine/df33aa.wgsl.expected.glsl b/test/intrinsics/gen/dpdyFine/df33aa.wgsl.expected.glsl
index c0cad99..7f081dd 100644
--- a/test/intrinsics/gen/dpdyFine/df33aa.wgsl.expected.glsl
+++ b/test/intrinsics/gen/dpdyFine/df33aa.wgsl.expected.glsl
@@ -9,13 +9,12 @@
 
 void fragment_main() {
   dpdyFine_df33aa();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'ddy_fine' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 2-component vector of float'
diff --git a/test/intrinsics/gen/exp/0f70eb.wgsl.expected.glsl b/test/intrinsics/gen/exp/0f70eb.wgsl.expected.glsl
index 14b34b1..feae4f5 100644
--- a/test/intrinsics/gen/exp/0f70eb.wgsl.expected.glsl
+++ b/test/intrinsics/gen/exp/0f70eb.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec4 res = exp(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   exp_0f70eb();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec4 res = exp(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   exp_0f70eb();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec4 res = exp(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   exp_0f70eb();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/exp/1951e7.wgsl.expected.glsl b/test/intrinsics/gen/exp/1951e7.wgsl.expected.glsl
index 62d16d5..d2e216a 100644
--- a/test/intrinsics/gen/exp/1951e7.wgsl.expected.glsl
+++ b/test/intrinsics/gen/exp/1951e7.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec2 res = exp(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   exp_1951e7();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec2 res = exp(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   exp_1951e7();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec2 res = exp(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   exp_1951e7();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/exp/771fd2.wgsl.expected.glsl b/test/intrinsics/gen/exp/771fd2.wgsl.expected.glsl
index 721e5dc..d5b5e73 100644
--- a/test/intrinsics/gen/exp/771fd2.wgsl.expected.glsl
+++ b/test/intrinsics/gen/exp/771fd2.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   float res = exp(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   exp_771fd2();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   float res = exp(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   exp_771fd2();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   float res = exp(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   exp_771fd2();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/exp/d98450.wgsl.expected.glsl b/test/intrinsics/gen/exp/d98450.wgsl.expected.glsl
index acca67d..52d707b 100644
--- a/test/intrinsics/gen/exp/d98450.wgsl.expected.glsl
+++ b/test/intrinsics/gen/exp/d98450.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec3 res = exp(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   exp_d98450();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec3 res = exp(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   exp_d98450();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec3 res = exp(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   exp_d98450();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/exp2/1f8680.wgsl.expected.glsl b/test/intrinsics/gen/exp2/1f8680.wgsl.expected.glsl
index a05fac6..b9556d1 100644
--- a/test/intrinsics/gen/exp2/1f8680.wgsl.expected.glsl
+++ b/test/intrinsics/gen/exp2/1f8680.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec3 res = exp2(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   exp2_1f8680();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec3 res = exp2(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   exp2_1f8680();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec3 res = exp2(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   exp2_1f8680();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/exp2/a9d0a7.wgsl.expected.glsl b/test/intrinsics/gen/exp2/a9d0a7.wgsl.expected.glsl
index 0a6862d..52ec604 100644
--- a/test/intrinsics/gen/exp2/a9d0a7.wgsl.expected.glsl
+++ b/test/intrinsics/gen/exp2/a9d0a7.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec4 res = exp2(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   exp2_a9d0a7();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec4 res = exp2(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   exp2_a9d0a7();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec4 res = exp2(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   exp2_a9d0a7();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/exp2/d6777c.wgsl.expected.glsl b/test/intrinsics/gen/exp2/d6777c.wgsl.expected.glsl
index 6cdab4d..f6f2d25 100644
--- a/test/intrinsics/gen/exp2/d6777c.wgsl.expected.glsl
+++ b/test/intrinsics/gen/exp2/d6777c.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec2 res = exp2(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   exp2_d6777c();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec2 res = exp2(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   exp2_d6777c();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec2 res = exp2(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   exp2_d6777c();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/exp2/dea523.wgsl.expected.glsl b/test/intrinsics/gen/exp2/dea523.wgsl.expected.glsl
index f929267..5b667d2 100644
--- a/test/intrinsics/gen/exp2/dea523.wgsl.expected.glsl
+++ b/test/intrinsics/gen/exp2/dea523.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   float res = exp2(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   exp2_dea523();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   float res = exp2(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   exp2_dea523();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   float res = exp2(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   exp2_dea523();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/faceForward/5afbd5.wgsl.expected.glsl b/test/intrinsics/gen/faceForward/5afbd5.wgsl.expected.glsl
index 4a9bdc4..2e59bb7 100644
--- a/test/intrinsics/gen/faceForward/5afbd5.wgsl.expected.glsl
+++ b/test/intrinsics/gen/faceForward/5afbd5.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec3 res = faceforward(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   faceForward_5afbd5();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec3 res = faceforward(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   faceForward_5afbd5();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec3 res = faceforward(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   faceForward_5afbd5();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/faceForward/b316e5.wgsl.expected.glsl b/test/intrinsics/gen/faceForward/b316e5.wgsl.expected.glsl
index 6fccb43..412620d 100644
--- a/test/intrinsics/gen/faceForward/b316e5.wgsl.expected.glsl
+++ b/test/intrinsics/gen/faceForward/b316e5.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec4 res = faceforward(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   faceForward_b316e5();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec4 res = faceforward(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   faceForward_b316e5();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec4 res = faceforward(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   faceForward_b316e5();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/faceForward/e6908b.wgsl.expected.glsl b/test/intrinsics/gen/faceForward/e6908b.wgsl.expected.glsl
index 80375c8..bb60c46 100644
--- a/test/intrinsics/gen/faceForward/e6908b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/faceForward/e6908b.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec2 res = faceforward(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   faceForward_e6908b();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec2 res = faceforward(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   faceForward_e6908b();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec2 res = faceforward(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   faceForward_e6908b();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/floor/3bccc4.wgsl.expected.glsl b/test/intrinsics/gen/floor/3bccc4.wgsl.expected.glsl
index e3ece5a..e13ffb3 100644
--- a/test/intrinsics/gen/floor/3bccc4.wgsl.expected.glsl
+++ b/test/intrinsics/gen/floor/3bccc4.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec4 res = floor(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   floor_3bccc4();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec4 res = floor(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   floor_3bccc4();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec4 res = floor(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   floor_3bccc4();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/floor/5fc9ac.wgsl.expected.glsl b/test/intrinsics/gen/floor/5fc9ac.wgsl.expected.glsl
index d0cfbad..2bdf291 100644
--- a/test/intrinsics/gen/floor/5fc9ac.wgsl.expected.glsl
+++ b/test/intrinsics/gen/floor/5fc9ac.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec2 res = floor(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   floor_5fc9ac();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec2 res = floor(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   floor_5fc9ac();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec2 res = floor(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   floor_5fc9ac();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/floor/60d7ea.wgsl.expected.glsl b/test/intrinsics/gen/floor/60d7ea.wgsl.expected.glsl
index 25c718c..2261630 100644
--- a/test/intrinsics/gen/floor/60d7ea.wgsl.expected.glsl
+++ b/test/intrinsics/gen/floor/60d7ea.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec3 res = floor(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   floor_60d7ea();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec3 res = floor(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   floor_60d7ea();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec3 res = floor(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   floor_60d7ea();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/floor/66f154.wgsl.expected.glsl b/test/intrinsics/gen/floor/66f154.wgsl.expected.glsl
index 708bc06..bbc4dc1 100644
--- a/test/intrinsics/gen/floor/66f154.wgsl.expected.glsl
+++ b/test/intrinsics/gen/floor/66f154.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   float res = floor(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   floor_66f154();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   float res = floor(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   floor_66f154();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   float res = floor(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   floor_66f154();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/fma/26a7a9.wgsl.expected.glsl b/test/intrinsics/gen/fma/26a7a9.wgsl.expected.glsl
index 6a1c015..99f7db0 100644
--- a/test/intrinsics/gen/fma/26a7a9.wgsl.expected.glsl
+++ b/test/intrinsics/gen/fma/26a7a9.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   vec2 res = mad(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   fma_26a7a9();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'mad' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 2-component vector of float'
@@ -47,19 +34,14 @@
   vec2 res = mad(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   fma_26a7a9();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'mad' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 2-component vector of float'
@@ -75,20 +57,15 @@
   vec2 res = mad(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   fma_26a7a9();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'mad' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 2-component vector of float'
diff --git a/test/intrinsics/gen/fma/6a3283.wgsl.expected.glsl b/test/intrinsics/gen/fma/6a3283.wgsl.expected.glsl
index 8b2530b..3d1103f 100644
--- a/test/intrinsics/gen/fma/6a3283.wgsl.expected.glsl
+++ b/test/intrinsics/gen/fma/6a3283.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   vec4 res = mad(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   fma_6a3283();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'mad' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of float'
@@ -47,19 +34,14 @@
   vec4 res = mad(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   fma_6a3283();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'mad' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of float'
@@ -75,20 +57,15 @@
   vec4 res = mad(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   fma_6a3283();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'mad' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of float'
diff --git a/test/intrinsics/gen/fma/c10ba3.wgsl.expected.glsl b/test/intrinsics/gen/fma/c10ba3.wgsl.expected.glsl
index 0d07f7b..cb9db2d 100644
--- a/test/intrinsics/gen/fma/c10ba3.wgsl.expected.glsl
+++ b/test/intrinsics/gen/fma/c10ba3.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   float res = mad(1.0f, 1.0f, 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   fma_c10ba3();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'mad' : no matching overloaded function found 
 ERROR: 0:5: '' : compilation terminated 
@@ -46,19 +33,14 @@
   float res = mad(1.0f, 1.0f, 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   fma_c10ba3();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'mad' : no matching overloaded function found 
 ERROR: 0:5: '' : compilation terminated 
@@ -73,20 +55,15 @@
   float res = mad(1.0f, 1.0f, 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   fma_c10ba3();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'mad' : no matching overloaded function found 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/intrinsics/gen/fma/e17c5c.wgsl.expected.glsl b/test/intrinsics/gen/fma/e17c5c.wgsl.expected.glsl
index a380e52..cfe2ccd 100644
--- a/test/intrinsics/gen/fma/e17c5c.wgsl.expected.glsl
+++ b/test/intrinsics/gen/fma/e17c5c.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   vec3 res = mad(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   fma_e17c5c();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'mad' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 3-component vector of float'
@@ -47,19 +34,14 @@
   vec3 res = mad(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   fma_e17c5c();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'mad' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 3-component vector of float'
@@ -75,20 +57,15 @@
   vec3 res = mad(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   fma_e17c5c();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'mad' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 3-component vector of float'
diff --git a/test/intrinsics/gen/fract/8bc1e9.wgsl.expected.glsl b/test/intrinsics/gen/fract/8bc1e9.wgsl.expected.glsl
index a8aa370..fc0b2aa 100644
--- a/test/intrinsics/gen/fract/8bc1e9.wgsl.expected.glsl
+++ b/test/intrinsics/gen/fract/8bc1e9.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   vec4 res = frac(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   fract_8bc1e9();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'frac' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of float'
@@ -47,19 +34,14 @@
   vec4 res = frac(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   fract_8bc1e9();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'frac' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of float'
@@ -75,20 +57,15 @@
   vec4 res = frac(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   fract_8bc1e9();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'frac' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of float'
diff --git a/test/intrinsics/gen/fract/943cb1.wgsl.expected.glsl b/test/intrinsics/gen/fract/943cb1.wgsl.expected.glsl
index 3940b2d..0e98131 100644
--- a/test/intrinsics/gen/fract/943cb1.wgsl.expected.glsl
+++ b/test/intrinsics/gen/fract/943cb1.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   vec2 res = frac(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   fract_943cb1();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'frac' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 2-component vector of float'
@@ -47,19 +34,14 @@
   vec2 res = frac(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   fract_943cb1();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'frac' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 2-component vector of float'
@@ -75,20 +57,15 @@
   vec2 res = frac(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   fract_943cb1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'frac' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 2-component vector of float'
diff --git a/test/intrinsics/gen/fract/a49758.wgsl.expected.glsl b/test/intrinsics/gen/fract/a49758.wgsl.expected.glsl
index 5204443..b69fb8f 100644
--- a/test/intrinsics/gen/fract/a49758.wgsl.expected.glsl
+++ b/test/intrinsics/gen/fract/a49758.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   vec3 res = frac(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   fract_a49758();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'frac' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 3-component vector of float'
@@ -47,19 +34,14 @@
   vec3 res = frac(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   fract_a49758();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'frac' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 3-component vector of float'
@@ -75,20 +57,15 @@
   vec3 res = frac(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   fract_a49758();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'frac' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 3-component vector of float'
diff --git a/test/intrinsics/gen/fract/fa5c71.wgsl.expected.glsl b/test/intrinsics/gen/fract/fa5c71.wgsl.expected.glsl
index 3fadefa..7811e56 100644
--- a/test/intrinsics/gen/fract/fa5c71.wgsl.expected.glsl
+++ b/test/intrinsics/gen/fract/fa5c71.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   float res = frac(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   fract_fa5c71();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'frac' : no matching overloaded function found 
 ERROR: 0:5: '' : compilation terminated 
@@ -46,19 +33,14 @@
   float res = frac(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   fract_fa5c71();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'frac' : no matching overloaded function found 
 ERROR: 0:5: '' : compilation terminated 
@@ -73,20 +55,15 @@
   float res = frac(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   fract_fa5c71();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'frac' : no matching overloaded function found 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/intrinsics/gen/frexp/368997.wgsl.expected.glsl b/test/intrinsics/gen/frexp/368997.wgsl.expected.glsl
index a1f31ea..47ed17d 100644
--- a/test/intrinsics/gen/frexp/368997.wgsl.expected.glsl
+++ b/test/intrinsics/gen/frexp/368997.wgsl.expected.glsl
@@ -20,31 +20,18 @@
   frexp_result_vec3 res = tint_frexp(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   frexp_368997();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:10: 'float3' : undeclared identifier 
 ERROR: 0:10: '' : compilation terminated 
@@ -72,19 +59,14 @@
   frexp_result_vec3 res = tint_frexp(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   frexp_368997();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:10: 'float3' : undeclared identifier 
 ERROR: 0:10: '' : compilation terminated 
@@ -112,20 +94,15 @@
   frexp_result_vec3 res = tint_frexp(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   frexp_368997();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:10: 'float3' : undeclared identifier 
 ERROR: 0:10: '' : compilation terminated 
diff --git a/test/intrinsics/gen/frexp/3c4f48.wgsl.expected.glsl b/test/intrinsics/gen/frexp/3c4f48.wgsl.expected.glsl
index 8e0f6fd..aa6d873 100644
--- a/test/intrinsics/gen/frexp/3c4f48.wgsl.expected.glsl
+++ b/test/intrinsics/gen/frexp/3c4f48.wgsl.expected.glsl
@@ -20,31 +20,18 @@
   frexp_result_vec4 res = tint_frexp(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   frexp_3c4f48();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:10: 'float4' : undeclared identifier 
 ERROR: 0:10: '' : compilation terminated 
@@ -72,19 +59,14 @@
   frexp_result_vec4 res = tint_frexp(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   frexp_3c4f48();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:10: 'float4' : undeclared identifier 
 ERROR: 0:10: '' : compilation terminated 
@@ -112,20 +94,15 @@
   frexp_result_vec4 res = tint_frexp(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   frexp_3c4f48();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:10: 'float4' : undeclared identifier 
 ERROR: 0:10: '' : compilation terminated 
diff --git a/test/intrinsics/gen/frexp/4bdfc7.wgsl.expected.glsl b/test/intrinsics/gen/frexp/4bdfc7.wgsl.expected.glsl
index 2acbc9f..05a976e 100644
--- a/test/intrinsics/gen/frexp/4bdfc7.wgsl.expected.glsl
+++ b/test/intrinsics/gen/frexp/4bdfc7.wgsl.expected.glsl
@@ -20,31 +20,18 @@
   frexp_result_vec2 res = tint_frexp(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   frexp_4bdfc7();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:10: 'float2' : undeclared identifier 
 ERROR: 0:10: '' : compilation terminated 
@@ -72,19 +59,14 @@
   frexp_result_vec2 res = tint_frexp(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   frexp_4bdfc7();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:10: 'float2' : undeclared identifier 
 ERROR: 0:10: '' : compilation terminated 
@@ -112,20 +94,15 @@
   frexp_result_vec2 res = tint_frexp(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   frexp_4bdfc7();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:10: 'float2' : undeclared identifier 
 ERROR: 0:10: '' : compilation terminated 
diff --git a/test/intrinsics/gen/frexp/eabd40.wgsl.expected.glsl b/test/intrinsics/gen/frexp/eabd40.wgsl.expected.glsl
index 6892c1a..0efc2db 100644
--- a/test/intrinsics/gen/frexp/eabd40.wgsl.expected.glsl
+++ b/test/intrinsics/gen/frexp/eabd40.wgsl.expected.glsl
@@ -20,31 +20,18 @@
   frexp_result res = tint_frexp(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   frexp_eabd40();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:11: 'frexp' : no matching overloaded function found 
 ERROR: 0:11: '' : compilation terminated 
@@ -72,19 +59,14 @@
   frexp_result res = tint_frexp(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   frexp_eabd40();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:11: 'frexp' : no matching overloaded function found 
 ERROR: 0:11: '' : compilation terminated 
@@ -112,20 +94,15 @@
   frexp_result res = tint_frexp(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   frexp_eabd40();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:11: 'frexp' : no matching overloaded function found 
 ERROR: 0:11: '' : compilation terminated 
diff --git a/test/intrinsics/gen/fwidth/5d1b39.wgsl.expected.glsl b/test/intrinsics/gen/fwidth/5d1b39.wgsl.expected.glsl
index 34122c5..c804d0b 100644
--- a/test/intrinsics/gen/fwidth/5d1b39.wgsl.expected.glsl
+++ b/test/intrinsics/gen/fwidth/5d1b39.wgsl.expected.glsl
@@ -7,10 +7,9 @@
 
 void fragment_main() {
   fwidth_5d1b39();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/fwidth/b83ebb.wgsl.expected.glsl b/test/intrinsics/gen/fwidth/b83ebb.wgsl.expected.glsl
index ec1ced8..29d50bc 100644
--- a/test/intrinsics/gen/fwidth/b83ebb.wgsl.expected.glsl
+++ b/test/intrinsics/gen/fwidth/b83ebb.wgsl.expected.glsl
@@ -7,10 +7,9 @@
 
 void fragment_main() {
   fwidth_b83ebb();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/fwidth/d2ab9a.wgsl.expected.glsl b/test/intrinsics/gen/fwidth/d2ab9a.wgsl.expected.glsl
index 91563b7..db40ca0 100644
--- a/test/intrinsics/gen/fwidth/d2ab9a.wgsl.expected.glsl
+++ b/test/intrinsics/gen/fwidth/d2ab9a.wgsl.expected.glsl
@@ -7,10 +7,9 @@
 
 void fragment_main() {
   fwidth_d2ab9a();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/fwidth/df38ef.wgsl.expected.glsl b/test/intrinsics/gen/fwidth/df38ef.wgsl.expected.glsl
index 43676d1..170e9b2 100644
--- a/test/intrinsics/gen/fwidth/df38ef.wgsl.expected.glsl
+++ b/test/intrinsics/gen/fwidth/df38ef.wgsl.expected.glsl
@@ -7,10 +7,9 @@
 
 void fragment_main() {
   fwidth_df38ef();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/fwidthCoarse/159c8a.wgsl.expected.glsl b/test/intrinsics/gen/fwidthCoarse/159c8a.wgsl.expected.glsl
index 135ec35..e5d5b6f 100644
--- a/test/intrinsics/gen/fwidthCoarse/159c8a.wgsl.expected.glsl
+++ b/test/intrinsics/gen/fwidthCoarse/159c8a.wgsl.expected.glsl
@@ -7,10 +7,9 @@
 
 void fragment_main() {
   fwidthCoarse_159c8a();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/fwidthCoarse/1e59d9.wgsl.expected.glsl b/test/intrinsics/gen/fwidthCoarse/1e59d9.wgsl.expected.glsl
index 62de671..6ec03b5 100644
--- a/test/intrinsics/gen/fwidthCoarse/1e59d9.wgsl.expected.glsl
+++ b/test/intrinsics/gen/fwidthCoarse/1e59d9.wgsl.expected.glsl
@@ -7,10 +7,9 @@
 
 void fragment_main() {
   fwidthCoarse_1e59d9();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/fwidthCoarse/4e4fc4.wgsl.expected.glsl b/test/intrinsics/gen/fwidthCoarse/4e4fc4.wgsl.expected.glsl
index a7780a7..1c54caa 100644
--- a/test/intrinsics/gen/fwidthCoarse/4e4fc4.wgsl.expected.glsl
+++ b/test/intrinsics/gen/fwidthCoarse/4e4fc4.wgsl.expected.glsl
@@ -7,10 +7,9 @@
 
 void fragment_main() {
   fwidthCoarse_4e4fc4();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/fwidthCoarse/e653f7.wgsl.expected.glsl b/test/intrinsics/gen/fwidthCoarse/e653f7.wgsl.expected.glsl
index 27c6a7c..8676a07 100644
--- a/test/intrinsics/gen/fwidthCoarse/e653f7.wgsl.expected.glsl
+++ b/test/intrinsics/gen/fwidthCoarse/e653f7.wgsl.expected.glsl
@@ -7,10 +7,9 @@
 
 void fragment_main() {
   fwidthCoarse_e653f7();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/fwidthFine/523fdc.wgsl.expected.glsl b/test/intrinsics/gen/fwidthFine/523fdc.wgsl.expected.glsl
index 456f35c..bd41be7 100644
--- a/test/intrinsics/gen/fwidthFine/523fdc.wgsl.expected.glsl
+++ b/test/intrinsics/gen/fwidthFine/523fdc.wgsl.expected.glsl
@@ -7,10 +7,9 @@
 
 void fragment_main() {
   fwidthFine_523fdc();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/fwidthFine/68f4ef.wgsl.expected.glsl b/test/intrinsics/gen/fwidthFine/68f4ef.wgsl.expected.glsl
index 871b6a6..c300adb 100644
--- a/test/intrinsics/gen/fwidthFine/68f4ef.wgsl.expected.glsl
+++ b/test/intrinsics/gen/fwidthFine/68f4ef.wgsl.expected.glsl
@@ -7,10 +7,9 @@
 
 void fragment_main() {
   fwidthFine_68f4ef();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/fwidthFine/f1742d.wgsl.expected.glsl b/test/intrinsics/gen/fwidthFine/f1742d.wgsl.expected.glsl
index 8244f2f..51d0730 100644
--- a/test/intrinsics/gen/fwidthFine/f1742d.wgsl.expected.glsl
+++ b/test/intrinsics/gen/fwidthFine/f1742d.wgsl.expected.glsl
@@ -7,10 +7,9 @@
 
 void fragment_main() {
   fwidthFine_f1742d();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/fwidthFine/ff6aa0.wgsl.expected.glsl b/test/intrinsics/gen/fwidthFine/ff6aa0.wgsl.expected.glsl
index 7fc286d..024943b 100644
--- a/test/intrinsics/gen/fwidthFine/ff6aa0.wgsl.expected.glsl
+++ b/test/intrinsics/gen/fwidthFine/ff6aa0.wgsl.expected.glsl
@@ -7,10 +7,9 @@
 
 void fragment_main() {
   fwidthFine_ff6aa0();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/ignore/51aeb7.wgsl.expected.glsl b/test/intrinsics/gen/ignore/51aeb7.wgsl.expected.glsl
index 9fbab2c..8f90b52 100644
--- a/test/intrinsics/gen/ignore/51aeb7.wgsl.expected.glsl
+++ b/test/intrinsics/gen/ignore/51aeb7.wgsl.expected.glsl
@@ -9,31 +9,18 @@
   1;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   ignore_51aeb7();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -41,19 +28,14 @@
   1;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   ignore_51aeb7();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -61,17 +43,12 @@
   1;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   ignore_51aeb7();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/ignore/6698df.wgsl.expected.glsl b/test/intrinsics/gen/ignore/6698df.wgsl.expected.glsl
index 455f5b2..1806507 100644
--- a/test/intrinsics/gen/ignore/6698df.wgsl.expected.glsl
+++ b/test/intrinsics/gen/ignore/6698df.wgsl.expected.glsl
@@ -9,31 +9,18 @@
   1u;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   ignore_6698df();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -41,19 +28,14 @@
   1u;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   ignore_6698df();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -61,17 +43,12 @@
   1u;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   ignore_6698df();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/ignore/d91a2f.wgsl.expected.glsl b/test/intrinsics/gen/ignore/d91a2f.wgsl.expected.glsl
index c68bffc..77c9713 100644
--- a/test/intrinsics/gen/ignore/d91a2f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/ignore/d91a2f.wgsl.expected.glsl
@@ -9,31 +9,18 @@
   1.0f;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   ignore_d91a2f();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -41,19 +28,14 @@
   1.0f;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   ignore_d91a2f();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -61,17 +43,12 @@
   1.0f;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   ignore_d91a2f();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/ignore/f414a6.wgsl.expected.glsl b/test/intrinsics/gen/ignore/f414a6.wgsl.expected.glsl
index 63c111f..0a47e1e 100644
--- a/test/intrinsics/gen/ignore/f414a6.wgsl.expected.glsl
+++ b/test/intrinsics/gen/ignore/f414a6.wgsl.expected.glsl
@@ -9,31 +9,18 @@
   false;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   ignore_f414a6();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -41,19 +28,14 @@
   false;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   ignore_f414a6();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -61,17 +43,12 @@
   false;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   ignore_f414a6();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/inverseSqrt/84407e.wgsl.expected.glsl b/test/intrinsics/gen/inverseSqrt/84407e.wgsl.expected.glsl
index 64218af..a06ac8a 100644
--- a/test/intrinsics/gen/inverseSqrt/84407e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/inverseSqrt/84407e.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   float res = rsqrt(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   inverseSqrt_84407e();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'rsqrt' : no matching overloaded function found 
 ERROR: 0:5: '' : compilation terminated 
@@ -46,19 +33,14 @@
   float res = rsqrt(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   inverseSqrt_84407e();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'rsqrt' : no matching overloaded function found 
 ERROR: 0:5: '' : compilation terminated 
@@ -73,20 +55,15 @@
   float res = rsqrt(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   inverseSqrt_84407e();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'rsqrt' : no matching overloaded function found 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/intrinsics/gen/inverseSqrt/8f2bd2.wgsl.expected.glsl b/test/intrinsics/gen/inverseSqrt/8f2bd2.wgsl.expected.glsl
index 2e339a4..a192269 100644
--- a/test/intrinsics/gen/inverseSqrt/8f2bd2.wgsl.expected.glsl
+++ b/test/intrinsics/gen/inverseSqrt/8f2bd2.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   vec2 res = rsqrt(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   inverseSqrt_8f2bd2();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'rsqrt' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 2-component vector of float'
@@ -47,19 +34,14 @@
   vec2 res = rsqrt(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   inverseSqrt_8f2bd2();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'rsqrt' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 2-component vector of float'
@@ -75,20 +57,15 @@
   vec2 res = rsqrt(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   inverseSqrt_8f2bd2();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'rsqrt' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 2-component vector of float'
diff --git a/test/intrinsics/gen/inverseSqrt/b197b1.wgsl.expected.glsl b/test/intrinsics/gen/inverseSqrt/b197b1.wgsl.expected.glsl
index 44afdde..e5e100e 100644
--- a/test/intrinsics/gen/inverseSqrt/b197b1.wgsl.expected.glsl
+++ b/test/intrinsics/gen/inverseSqrt/b197b1.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   vec3 res = rsqrt(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   inverseSqrt_b197b1();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'rsqrt' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 3-component vector of float'
@@ -47,19 +34,14 @@
   vec3 res = rsqrt(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   inverseSqrt_b197b1();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'rsqrt' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 3-component vector of float'
@@ -75,20 +57,15 @@
   vec3 res = rsqrt(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   inverseSqrt_b197b1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'rsqrt' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 3-component vector of float'
diff --git a/test/intrinsics/gen/inverseSqrt/c22347.wgsl.expected.glsl b/test/intrinsics/gen/inverseSqrt/c22347.wgsl.expected.glsl
index f9371f7..109f222 100644
--- a/test/intrinsics/gen/inverseSqrt/c22347.wgsl.expected.glsl
+++ b/test/intrinsics/gen/inverseSqrt/c22347.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   vec4 res = rsqrt(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   inverseSqrt_c22347();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'rsqrt' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of float'
@@ -47,19 +34,14 @@
   vec4 res = rsqrt(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   inverseSqrt_c22347();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'rsqrt' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of float'
@@ -75,20 +57,15 @@
   vec4 res = rsqrt(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   inverseSqrt_c22347();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'rsqrt' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of float'
diff --git a/test/intrinsics/gen/isFinite/34d32b.wgsl.expected.glsl b/test/intrinsics/gen/isFinite/34d32b.wgsl.expected.glsl
index 9c34884..e8a8c27 100644
--- a/test/intrinsics/gen/isFinite/34d32b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/isFinite/34d32b.wgsl.expected.glsl
@@ -11,31 +11,18 @@
   bvec2 res = isfinite(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   isFinite_34d32b();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'isfinite' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp 2-component vector of bool'
@@ -51,19 +38,14 @@
   bvec2 res = isfinite(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   isFinite_34d32b();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'isfinite' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp 2-component vector of bool'
@@ -79,20 +61,15 @@
   bvec2 res = isfinite(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   isFinite_34d32b();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'isfinite' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp 2-component vector of bool'
diff --git a/test/intrinsics/gen/isFinite/426f9f.wgsl.expected.glsl b/test/intrinsics/gen/isFinite/426f9f.wgsl.expected.glsl
index 47a43a4..0669ad2 100644
--- a/test/intrinsics/gen/isFinite/426f9f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/isFinite/426f9f.wgsl.expected.glsl
@@ -11,31 +11,18 @@
   bool res = isfinite(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   isFinite_426f9f();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'isfinite' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp bool'
@@ -51,19 +38,14 @@
   bool res = isfinite(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   isFinite_426f9f();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'isfinite' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp bool'
@@ -79,20 +61,15 @@
   bool res = isfinite(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   isFinite_426f9f();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'isfinite' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp bool'
diff --git a/test/intrinsics/gen/isFinite/8a23ad.wgsl.expected.glsl b/test/intrinsics/gen/isFinite/8a23ad.wgsl.expected.glsl
index 8486ac9..beb55f0 100644
--- a/test/intrinsics/gen/isFinite/8a23ad.wgsl.expected.glsl
+++ b/test/intrinsics/gen/isFinite/8a23ad.wgsl.expected.glsl
@@ -11,31 +11,18 @@
   bvec3 res = isfinite(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   isFinite_8a23ad();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'isfinite' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp 3-component vector of bool'
@@ -51,19 +38,14 @@
   bvec3 res = isfinite(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   isFinite_8a23ad();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'isfinite' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp 3-component vector of bool'
@@ -79,20 +61,15 @@
   bvec3 res = isfinite(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   isFinite_8a23ad();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'isfinite' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp 3-component vector of bool'
diff --git a/test/intrinsics/gen/isFinite/f31987.wgsl.expected.glsl b/test/intrinsics/gen/isFinite/f31987.wgsl.expected.glsl
index a2870a9..aaf60d1 100644
--- a/test/intrinsics/gen/isFinite/f31987.wgsl.expected.glsl
+++ b/test/intrinsics/gen/isFinite/f31987.wgsl.expected.glsl
@@ -11,31 +11,18 @@
   bvec4 res = isfinite(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   isFinite_f31987();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'isfinite' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp 4-component vector of bool'
@@ -51,19 +38,14 @@
   bvec4 res = isfinite(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   isFinite_f31987();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'isfinite' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp 4-component vector of bool'
@@ -79,20 +61,15 @@
   bvec4 res = isfinite(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   isFinite_f31987();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'isfinite' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp 4-component vector of bool'
diff --git a/test/intrinsics/gen/isInf/666f2a.wgsl.expected.glsl b/test/intrinsics/gen/isInf/666f2a.wgsl.expected.glsl
index 36f99fe..0daf17d 100644
--- a/test/intrinsics/gen/isInf/666f2a.wgsl.expected.glsl
+++ b/test/intrinsics/gen/isInf/666f2a.wgsl.expected.glsl
@@ -9,31 +9,18 @@
   bvec3 res = isinf(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   isInf_666f2a();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -41,19 +28,14 @@
   bvec3 res = isinf(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   isInf_666f2a();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -61,17 +43,12 @@
   bvec3 res = isinf(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   isInf_666f2a();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/isInf/7bd98f.wgsl.expected.glsl b/test/intrinsics/gen/isInf/7bd98f.wgsl.expected.glsl
index 56e4d76..b4790ba 100644
--- a/test/intrinsics/gen/isInf/7bd98f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/isInf/7bd98f.wgsl.expected.glsl
@@ -9,31 +9,18 @@
   bool res = isinf(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   isInf_7bd98f();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -41,19 +28,14 @@
   bool res = isinf(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   isInf_7bd98f();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -61,17 +43,12 @@
   bool res = isinf(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   isInf_7bd98f();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/isInf/7e81b5.wgsl.expected.glsl b/test/intrinsics/gen/isInf/7e81b5.wgsl.expected.glsl
index a1c971a..0ed29fd 100644
--- a/test/intrinsics/gen/isInf/7e81b5.wgsl.expected.glsl
+++ b/test/intrinsics/gen/isInf/7e81b5.wgsl.expected.glsl
@@ -9,31 +9,18 @@
   bvec4 res = isinf(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   isInf_7e81b5();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -41,19 +28,14 @@
   bvec4 res = isinf(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   isInf_7e81b5();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -61,17 +43,12 @@
   bvec4 res = isinf(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   isInf_7e81b5();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/isInf/a46d6f.wgsl.expected.glsl b/test/intrinsics/gen/isInf/a46d6f.wgsl.expected.glsl
index 7c0559f..78a4a3a 100644
--- a/test/intrinsics/gen/isInf/a46d6f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/isInf/a46d6f.wgsl.expected.glsl
@@ -9,31 +9,18 @@
   bvec2 res = isinf(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   isInf_a46d6f();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -41,19 +28,14 @@
   bvec2 res = isinf(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   isInf_a46d6f();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -61,17 +43,12 @@
   bvec2 res = isinf(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   isInf_a46d6f();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/isNan/1280ab.wgsl.expected.glsl b/test/intrinsics/gen/isNan/1280ab.wgsl.expected.glsl
index 9221d99..3ca91af 100644
--- a/test/intrinsics/gen/isNan/1280ab.wgsl.expected.glsl
+++ b/test/intrinsics/gen/isNan/1280ab.wgsl.expected.glsl
@@ -9,31 +9,18 @@
   bvec3 res = isnan(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   isNan_1280ab();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -41,19 +28,14 @@
   bvec3 res = isnan(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   isNan_1280ab();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -61,17 +43,12 @@
   bvec3 res = isnan(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   isNan_1280ab();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/isNan/4d280d.wgsl.expected.glsl b/test/intrinsics/gen/isNan/4d280d.wgsl.expected.glsl
index ea662da..61f6600 100644
--- a/test/intrinsics/gen/isNan/4d280d.wgsl.expected.glsl
+++ b/test/intrinsics/gen/isNan/4d280d.wgsl.expected.glsl
@@ -9,31 +9,18 @@
   bvec4 res = isnan(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   isNan_4d280d();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -41,19 +28,14 @@
   bvec4 res = isnan(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   isNan_4d280d();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -61,17 +43,12 @@
   bvec4 res = isnan(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   isNan_4d280d();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/isNan/67ecd3.wgsl.expected.glsl b/test/intrinsics/gen/isNan/67ecd3.wgsl.expected.glsl
index 5fae942..d0a67e5 100644
--- a/test/intrinsics/gen/isNan/67ecd3.wgsl.expected.glsl
+++ b/test/intrinsics/gen/isNan/67ecd3.wgsl.expected.glsl
@@ -9,31 +9,18 @@
   bvec2 res = isnan(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   isNan_67ecd3();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -41,19 +28,14 @@
   bvec2 res = isnan(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   isNan_67ecd3();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -61,17 +43,12 @@
   bvec2 res = isnan(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   isNan_67ecd3();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/isNan/e4978e.wgsl.expected.glsl b/test/intrinsics/gen/isNan/e4978e.wgsl.expected.glsl
index 81a59da..9f74dfe 100644
--- a/test/intrinsics/gen/isNan/e4978e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/isNan/e4978e.wgsl.expected.glsl
@@ -9,31 +9,18 @@
   bool res = isnan(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   isNan_e4978e();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -41,19 +28,14 @@
   bool res = isnan(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   isNan_e4978e();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -61,17 +43,12 @@
   bool res = isnan(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   isNan_e4978e();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/isNormal/863dcd.wgsl.expected.glsl b/test/intrinsics/gen/isNormal/863dcd.wgsl.expected.glsl
index 6b4953e..45a8806 100644
--- a/test/intrinsics/gen/isNormal/863dcd.wgsl.expected.glsl
+++ b/test/intrinsics/gen/isNormal/863dcd.wgsl.expected.glsl
@@ -18,31 +18,18 @@
   bvec4 res = tint_isNormal(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   isNormal_863dcd();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'uint4' : undeclared identifier 
 ERROR: 0:5: '' : compilation terminated 
@@ -64,19 +51,14 @@
   bvec4 res = tint_isNormal(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   isNormal_863dcd();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'uint4' : undeclared identifier 
 ERROR: 0:5: '' : compilation terminated 
@@ -98,20 +80,15 @@
   bvec4 res = tint_isNormal(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   isNormal_863dcd();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'uint4' : undeclared identifier 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/intrinsics/gen/isNormal/b00ab1.wgsl.expected.glsl b/test/intrinsics/gen/isNormal/b00ab1.wgsl.expected.glsl
index 09a02d1..038cf35 100644
--- a/test/intrinsics/gen/isNormal/b00ab1.wgsl.expected.glsl
+++ b/test/intrinsics/gen/isNormal/b00ab1.wgsl.expected.glsl
@@ -18,31 +18,18 @@
   bvec2 res = tint_isNormal(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   isNormal_b00ab1();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'uint2' : undeclared identifier 
 ERROR: 0:5: '' : compilation terminated 
@@ -64,19 +51,14 @@
   bvec2 res = tint_isNormal(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   isNormal_b00ab1();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'uint2' : undeclared identifier 
 ERROR: 0:5: '' : compilation terminated 
@@ -98,20 +80,15 @@
   bvec2 res = tint_isNormal(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   isNormal_b00ab1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'uint2' : undeclared identifier 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/intrinsics/gen/isNormal/c286b7.wgsl.expected.glsl b/test/intrinsics/gen/isNormal/c286b7.wgsl.expected.glsl
index 959e3d4..4215a0e 100644
--- a/test/intrinsics/gen/isNormal/c286b7.wgsl.expected.glsl
+++ b/test/intrinsics/gen/isNormal/c286b7.wgsl.expected.glsl
@@ -18,31 +18,18 @@
   bvec3 res = tint_isNormal(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   isNormal_c286b7();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'uint3' : undeclared identifier 
 ERROR: 0:5: '' : compilation terminated 
@@ -64,19 +51,14 @@
   bvec3 res = tint_isNormal(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   isNormal_c286b7();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'uint3' : undeclared identifier 
 ERROR: 0:5: '' : compilation terminated 
@@ -98,20 +80,15 @@
   bvec3 res = tint_isNormal(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   isNormal_c286b7();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'uint3' : undeclared identifier 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/intrinsics/gen/isNormal/c6e880.wgsl.expected.glsl b/test/intrinsics/gen/isNormal/c6e880.wgsl.expected.glsl
index 047b030..0361851 100644
--- a/test/intrinsics/gen/isNormal/c6e880.wgsl.expected.glsl
+++ b/test/intrinsics/gen/isNormal/c6e880.wgsl.expected.glsl
@@ -18,31 +18,18 @@
   bool res = tint_isNormal(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   isNormal_c6e880();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'asuint' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp uint'
@@ -65,19 +52,14 @@
   bool res = tint_isNormal(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   isNormal_c6e880();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'asuint' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump uint'
@@ -100,20 +82,15 @@
   bool res = tint_isNormal(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   isNormal_c6e880();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'asuint' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp uint'
diff --git a/test/intrinsics/gen/ldexp/a31cdc.wgsl.expected.glsl b/test/intrinsics/gen/ldexp/a31cdc.wgsl.expected.glsl
index 52421d5..f1a8f19 100644
--- a/test/intrinsics/gen/ldexp/a31cdc.wgsl.expected.glsl
+++ b/test/intrinsics/gen/ldexp/a31cdc.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec3 res = ldexp(vec3(0.0f, 0.0f, 0.0f), ivec3(0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   ldexp_a31cdc();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec3 res = ldexp(vec3(0.0f, 0.0f, 0.0f), ivec3(0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   ldexp_a31cdc();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec3 res = ldexp(vec3(0.0f, 0.0f, 0.0f), ivec3(0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   ldexp_a31cdc();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/ldexp/abd718.wgsl.expected.glsl b/test/intrinsics/gen/ldexp/abd718.wgsl.expected.glsl
index 517e258..c72b266 100644
--- a/test/intrinsics/gen/ldexp/abd718.wgsl.expected.glsl
+++ b/test/intrinsics/gen/ldexp/abd718.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec2 res = ldexp(vec2(0.0f, 0.0f), ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   ldexp_abd718();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec2 res = ldexp(vec2(0.0f, 0.0f), ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   ldexp_abd718();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec2 res = ldexp(vec2(0.0f, 0.0f), ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   ldexp_abd718();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/ldexp/cc9cde.wgsl.expected.glsl b/test/intrinsics/gen/ldexp/cc9cde.wgsl.expected.glsl
index 24485b4..0b56095 100644
--- a/test/intrinsics/gen/ldexp/cc9cde.wgsl.expected.glsl
+++ b/test/intrinsics/gen/ldexp/cc9cde.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec4 res = ldexp(vec4(0.0f, 0.0f, 0.0f, 0.0f), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   ldexp_cc9cde();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec4 res = ldexp(vec4(0.0f, 0.0f, 0.0f, 0.0f), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   ldexp_cc9cde();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec4 res = ldexp(vec4(0.0f, 0.0f, 0.0f, 0.0f), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   ldexp_cc9cde();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/ldexp/db8b49.wgsl.expected.glsl b/test/intrinsics/gen/ldexp/db8b49.wgsl.expected.glsl
index 113b4c3..d29b019 100644
--- a/test/intrinsics/gen/ldexp/db8b49.wgsl.expected.glsl
+++ b/test/intrinsics/gen/ldexp/db8b49.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   float res = ldexp(1.0f, 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   ldexp_db8b49();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   float res = ldexp(1.0f, 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   ldexp_db8b49();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   float res = ldexp(1.0f, 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   ldexp_db8b49();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/length/056071.wgsl.expected.glsl b/test/intrinsics/gen/length/056071.wgsl.expected.glsl
index 3b119de..259f040 100644
--- a/test/intrinsics/gen/length/056071.wgsl.expected.glsl
+++ b/test/intrinsics/gen/length/056071.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   float res = length(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   length_056071();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   float res = length(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   length_056071();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   float res = length(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   length_056071();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/length/602a17.wgsl.expected.glsl b/test/intrinsics/gen/length/602a17.wgsl.expected.glsl
index ce4b832..4a04172 100644
--- a/test/intrinsics/gen/length/602a17.wgsl.expected.glsl
+++ b/test/intrinsics/gen/length/602a17.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   float res = length(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   length_602a17();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   float res = length(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   length_602a17();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   float res = length(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   length_602a17();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/length/afde8b.wgsl.expected.glsl b/test/intrinsics/gen/length/afde8b.wgsl.expected.glsl
index d86ccd3..e58341f 100644
--- a/test/intrinsics/gen/length/afde8b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/length/afde8b.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   float res = length(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   length_afde8b();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   float res = length(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   length_afde8b();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   float res = length(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   length_afde8b();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/length/becebf.wgsl.expected.glsl b/test/intrinsics/gen/length/becebf.wgsl.expected.glsl
index 7486516..3ec5f75 100644
--- a/test/intrinsics/gen/length/becebf.wgsl.expected.glsl
+++ b/test/intrinsics/gen/length/becebf.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   float res = length(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   length_becebf();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   float res = length(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   length_becebf();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   float res = length(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   length_becebf();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/log/3da25a.wgsl.expected.glsl b/test/intrinsics/gen/log/3da25a.wgsl.expected.glsl
index 1bc35fb..1b40c41 100644
--- a/test/intrinsics/gen/log/3da25a.wgsl.expected.glsl
+++ b/test/intrinsics/gen/log/3da25a.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec4 res = log(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   log_3da25a();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec4 res = log(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   log_3da25a();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec4 res = log(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   log_3da25a();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/log/7114a6.wgsl.expected.glsl b/test/intrinsics/gen/log/7114a6.wgsl.expected.glsl
index 46d72a1..9b5e63e 100644
--- a/test/intrinsics/gen/log/7114a6.wgsl.expected.glsl
+++ b/test/intrinsics/gen/log/7114a6.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   float res = log(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   log_7114a6();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   float res = log(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   log_7114a6();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   float res = log(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   log_7114a6();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/log/b2ce28.wgsl.expected.glsl b/test/intrinsics/gen/log/b2ce28.wgsl.expected.glsl
index aa63407..46653ad 100644
--- a/test/intrinsics/gen/log/b2ce28.wgsl.expected.glsl
+++ b/test/intrinsics/gen/log/b2ce28.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec2 res = log(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   log_b2ce28();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec2 res = log(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   log_b2ce28();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec2 res = log(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   log_b2ce28();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/log/f4c570.wgsl.expected.glsl b/test/intrinsics/gen/log/f4c570.wgsl.expected.glsl
index 2171e83..4986e79 100644
--- a/test/intrinsics/gen/log/f4c570.wgsl.expected.glsl
+++ b/test/intrinsics/gen/log/f4c570.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec3 res = log(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   log_f4c570();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec3 res = log(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   log_f4c570();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec3 res = log(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   log_f4c570();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/log2/4036ed.wgsl.expected.glsl b/test/intrinsics/gen/log2/4036ed.wgsl.expected.glsl
index a3cbb0d..ef4bb19 100644
--- a/test/intrinsics/gen/log2/4036ed.wgsl.expected.glsl
+++ b/test/intrinsics/gen/log2/4036ed.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   float res = log2(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   log2_4036ed();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   float res = log2(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   log2_4036ed();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   float res = log2(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   log2_4036ed();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/log2/902988.wgsl.expected.glsl b/test/intrinsics/gen/log2/902988.wgsl.expected.glsl
index 23d35bc..a263dea 100644
--- a/test/intrinsics/gen/log2/902988.wgsl.expected.glsl
+++ b/test/intrinsics/gen/log2/902988.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec4 res = log2(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   log2_902988();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec4 res = log2(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   log2_902988();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec4 res = log2(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   log2_902988();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/log2/adb233.wgsl.expected.glsl b/test/intrinsics/gen/log2/adb233.wgsl.expected.glsl
index 5cc3c47..b79c82b 100644
--- a/test/intrinsics/gen/log2/adb233.wgsl.expected.glsl
+++ b/test/intrinsics/gen/log2/adb233.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec3 res = log2(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   log2_adb233();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec3 res = log2(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   log2_adb233();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec3 res = log2(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   log2_adb233();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/log2/aea659.wgsl.expected.glsl b/test/intrinsics/gen/log2/aea659.wgsl.expected.glsl
index ad3b77a..c1161a7 100644
--- a/test/intrinsics/gen/log2/aea659.wgsl.expected.glsl
+++ b/test/intrinsics/gen/log2/aea659.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec2 res = log2(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   log2_aea659();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec2 res = log2(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   log2_aea659();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec2 res = log2(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   log2_aea659();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/max/0c0aae.wgsl.expected.glsl b/test/intrinsics/gen/max/0c0aae.wgsl.expected.glsl
index 63560d0..c0f35091 100644
--- a/test/intrinsics/gen/max/0c0aae.wgsl.expected.glsl
+++ b/test/intrinsics/gen/max/0c0aae.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   uint res = max(1u, 1u);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   max_0c0aae();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   uint res = max(1u, 1u);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   max_0c0aae();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   uint res = max(1u, 1u);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   max_0c0aae();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/max/25eafe.wgsl.expected.glsl b/test/intrinsics/gen/max/25eafe.wgsl.expected.glsl
index 730e3d3..03e055f 100644
--- a/test/intrinsics/gen/max/25eafe.wgsl.expected.glsl
+++ b/test/intrinsics/gen/max/25eafe.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   ivec3 res = max(ivec3(0, 0, 0), ivec3(0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   max_25eafe();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   ivec3 res = max(ivec3(0, 0, 0), ivec3(0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   max_25eafe();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   ivec3 res = max(ivec3(0, 0, 0), ivec3(0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   max_25eafe();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/max/320815.wgsl.expected.glsl b/test/intrinsics/gen/max/320815.wgsl.expected.glsl
index 8e21639..c849500 100644
--- a/test/intrinsics/gen/max/320815.wgsl.expected.glsl
+++ b/test/intrinsics/gen/max/320815.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   uvec2 res = max(uvec2(0u, 0u), uvec2(0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   max_320815();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   uvec2 res = max(uvec2(0u, 0u), uvec2(0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   max_320815();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   uvec2 res = max(uvec2(0u, 0u), uvec2(0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   max_320815();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/max/44a39d.wgsl.expected.glsl b/test/intrinsics/gen/max/44a39d.wgsl.expected.glsl
index 2d87a72..bf3a813 100644
--- a/test/intrinsics/gen/max/44a39d.wgsl.expected.glsl
+++ b/test/intrinsics/gen/max/44a39d.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   float res = max(1.0f, 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   max_44a39d();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   float res = max(1.0f, 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   max_44a39d();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   float res = max(1.0f, 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   max_44a39d();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/max/453e04.wgsl.expected.glsl b/test/intrinsics/gen/max/453e04.wgsl.expected.glsl
index f0127c4..a23013a 100644
--- a/test/intrinsics/gen/max/453e04.wgsl.expected.glsl
+++ b/test/intrinsics/gen/max/453e04.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   uvec4 res = max(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   max_453e04();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   uvec4 res = max(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   max_453e04();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   uvec4 res = max(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   max_453e04();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/max/462050.wgsl.expected.glsl b/test/intrinsics/gen/max/462050.wgsl.expected.glsl
index db7e098..4242207 100644
--- a/test/intrinsics/gen/max/462050.wgsl.expected.glsl
+++ b/test/intrinsics/gen/max/462050.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec2 res = max(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   max_462050();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec2 res = max(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   max_462050();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec2 res = max(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   max_462050();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/max/4883ac.wgsl.expected.glsl b/test/intrinsics/gen/max/4883ac.wgsl.expected.glsl
index e418b79..f82b20e 100644
--- a/test/intrinsics/gen/max/4883ac.wgsl.expected.glsl
+++ b/test/intrinsics/gen/max/4883ac.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec3 res = max(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   max_4883ac();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec3 res = max(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   max_4883ac();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec3 res = max(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   max_4883ac();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/max/85e6bc.wgsl.expected.glsl b/test/intrinsics/gen/max/85e6bc.wgsl.expected.glsl
index 662db4e..cf6e036 100644
--- a/test/intrinsics/gen/max/85e6bc.wgsl.expected.glsl
+++ b/test/intrinsics/gen/max/85e6bc.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   ivec4 res = max(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   max_85e6bc();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   ivec4 res = max(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   max_85e6bc();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   ivec4 res = max(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   max_85e6bc();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/max/a93419.wgsl.expected.glsl b/test/intrinsics/gen/max/a93419.wgsl.expected.glsl
index d39362b..5daddd7 100644
--- a/test/intrinsics/gen/max/a93419.wgsl.expected.glsl
+++ b/test/intrinsics/gen/max/a93419.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec4 res = max(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   max_a93419();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec4 res = max(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   max_a93419();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec4 res = max(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   max_a93419();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/max/b1b73a.wgsl.expected.glsl b/test/intrinsics/gen/max/b1b73a.wgsl.expected.glsl
index bad55c7..f53eb96 100644
--- a/test/intrinsics/gen/max/b1b73a.wgsl.expected.glsl
+++ b/test/intrinsics/gen/max/b1b73a.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   uvec3 res = max(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   max_b1b73a();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   uvec3 res = max(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   max_b1b73a();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   uvec3 res = max(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   max_b1b73a();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/max/ce7c30.wgsl.expected.glsl b/test/intrinsics/gen/max/ce7c30.wgsl.expected.glsl
index e9496f3..470b30c 100644
--- a/test/intrinsics/gen/max/ce7c30.wgsl.expected.glsl
+++ b/test/intrinsics/gen/max/ce7c30.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   int res = max(1, 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   max_ce7c30();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   int res = max(1, 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   max_ce7c30();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   int res = max(1, 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   max_ce7c30();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/max/e8192f.wgsl.expected.glsl b/test/intrinsics/gen/max/e8192f.wgsl.expected.glsl
index eead06e..bf322b9 100644
--- a/test/intrinsics/gen/max/e8192f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/max/e8192f.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   ivec2 res = max(ivec2(0, 0), ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   max_e8192f();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   ivec2 res = max(ivec2(0, 0), ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   max_e8192f();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   ivec2 res = max(ivec2(0, 0), ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   max_e8192f();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/min/03c7e3.wgsl.expected.glsl b/test/intrinsics/gen/min/03c7e3.wgsl.expected.glsl
index 21670e2..e5d154f 100644
--- a/test/intrinsics/gen/min/03c7e3.wgsl.expected.glsl
+++ b/test/intrinsics/gen/min/03c7e3.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   ivec2 res = min(ivec2(0, 0), ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   min_03c7e3();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   ivec2 res = min(ivec2(0, 0), ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   min_03c7e3();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   ivec2 res = min(ivec2(0, 0), ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   min_03c7e3();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/min/0dc614.wgsl.expected.glsl b/test/intrinsics/gen/min/0dc614.wgsl.expected.glsl
index 23d6a58..0f8cb32 100644
--- a/test/intrinsics/gen/min/0dc614.wgsl.expected.glsl
+++ b/test/intrinsics/gen/min/0dc614.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   uvec4 res = min(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   min_0dc614();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   uvec4 res = min(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   min_0dc614();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   uvec4 res = min(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   min_0dc614();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/min/3941e1.wgsl.expected.glsl b/test/intrinsics/gen/min/3941e1.wgsl.expected.glsl
index 5df9bdc..9ada220 100644
--- a/test/intrinsics/gen/min/3941e1.wgsl.expected.glsl
+++ b/test/intrinsics/gen/min/3941e1.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   ivec4 res = min(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   min_3941e1();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   ivec4 res = min(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   min_3941e1();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   ivec4 res = min(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   min_3941e1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/min/46c5d3.wgsl.expected.glsl b/test/intrinsics/gen/min/46c5d3.wgsl.expected.glsl
index 138a485..fc70ab2 100644
--- a/test/intrinsics/gen/min/46c5d3.wgsl.expected.glsl
+++ b/test/intrinsics/gen/min/46c5d3.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   uint res = min(1u, 1u);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   min_46c5d3();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   uint res = min(1u, 1u);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   min_46c5d3();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   uint res = min(1u, 1u);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   min_46c5d3();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/min/82b28f.wgsl.expected.glsl b/test/intrinsics/gen/min/82b28f.wgsl.expected.glsl
index c1d244a..79b76c1 100644
--- a/test/intrinsics/gen/min/82b28f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/min/82b28f.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   uvec2 res = min(uvec2(0u, 0u), uvec2(0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   min_82b28f();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   uvec2 res = min(uvec2(0u, 0u), uvec2(0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   min_82b28f();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   uvec2 res = min(uvec2(0u, 0u), uvec2(0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   min_82b28f();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/min/93cfc4.wgsl.expected.glsl b/test/intrinsics/gen/min/93cfc4.wgsl.expected.glsl
index ea51f49..f1b7daa 100644
--- a/test/intrinsics/gen/min/93cfc4.wgsl.expected.glsl
+++ b/test/intrinsics/gen/min/93cfc4.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec3 res = min(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   min_93cfc4();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec3 res = min(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   min_93cfc4();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec3 res = min(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   min_93cfc4();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/min/a45171.wgsl.expected.glsl b/test/intrinsics/gen/min/a45171.wgsl.expected.glsl
index 43bee8b..ee3ce20 100644
--- a/test/intrinsics/gen/min/a45171.wgsl.expected.glsl
+++ b/test/intrinsics/gen/min/a45171.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   ivec3 res = min(ivec3(0, 0, 0), ivec3(0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   min_a45171();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   ivec3 res = min(ivec3(0, 0, 0), ivec3(0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   min_a45171();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   ivec3 res = min(ivec3(0, 0, 0), ivec3(0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   min_a45171();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/min/aa28ad.wgsl.expected.glsl b/test/intrinsics/gen/min/aa28ad.wgsl.expected.glsl
index eb5a4b0..9833c79 100644
--- a/test/intrinsics/gen/min/aa28ad.wgsl.expected.glsl
+++ b/test/intrinsics/gen/min/aa28ad.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec2 res = min(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   min_aa28ad();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec2 res = min(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   min_aa28ad();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec2 res = min(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   min_aa28ad();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/min/af326d.wgsl.expected.glsl b/test/intrinsics/gen/min/af326d.wgsl.expected.glsl
index 1090dab..aa066a9 100644
--- a/test/intrinsics/gen/min/af326d.wgsl.expected.glsl
+++ b/test/intrinsics/gen/min/af326d.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   float res = min(1.0f, 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   min_af326d();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   float res = min(1.0f, 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   min_af326d();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   float res = min(1.0f, 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   min_af326d();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/min/c70bb7.wgsl.expected.glsl b/test/intrinsics/gen/min/c70bb7.wgsl.expected.glsl
index 09ecc63..84a8276 100644
--- a/test/intrinsics/gen/min/c70bb7.wgsl.expected.glsl
+++ b/test/intrinsics/gen/min/c70bb7.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   uvec3 res = min(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   min_c70bb7();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   uvec3 res = min(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   min_c70bb7();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   uvec3 res = min(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   min_c70bb7();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/min/c73147.wgsl.expected.glsl b/test/intrinsics/gen/min/c73147.wgsl.expected.glsl
index 914a4b3..dc5d0a0 100644
--- a/test/intrinsics/gen/min/c73147.wgsl.expected.glsl
+++ b/test/intrinsics/gen/min/c73147.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   int res = min(1, 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   min_c73147();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   int res = min(1, 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   min_c73147();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   int res = min(1, 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   min_c73147();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/min/c76fa6.wgsl.expected.glsl b/test/intrinsics/gen/min/c76fa6.wgsl.expected.glsl
index a6b8d73..5ac7d78 100644
--- a/test/intrinsics/gen/min/c76fa6.wgsl.expected.glsl
+++ b/test/intrinsics/gen/min/c76fa6.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec4 res = min(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   min_c76fa6();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec4 res = min(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   min_c76fa6();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec4 res = min(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   min_c76fa6();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/mix/0c8c33.wgsl.expected.glsl b/test/intrinsics/gen/mix/0c8c33.wgsl.expected.glsl
index 5d2c8c9..9aa4a99 100644
--- a/test/intrinsics/gen/mix/0c8c33.wgsl.expected.glsl
+++ b/test/intrinsics/gen/mix/0c8c33.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec3 res = mix(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   mix_0c8c33();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec3 res = mix(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   mix_0c8c33();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec3 res = mix(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   mix_0c8c33();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/mix/1faeb1.wgsl.expected.glsl b/test/intrinsics/gen/mix/1faeb1.wgsl.expected.glsl
index baca38f..029fe15 100644
--- a/test/intrinsics/gen/mix/1faeb1.wgsl.expected.glsl
+++ b/test/intrinsics/gen/mix/1faeb1.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec4 res = mix(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   mix_1faeb1();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec4 res = mix(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   mix_1faeb1();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec4 res = mix(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   mix_1faeb1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/mix/2fadab.wgsl.expected.glsl b/test/intrinsics/gen/mix/2fadab.wgsl.expected.glsl
index 9267428..99c8c80 100644
--- a/test/intrinsics/gen/mix/2fadab.wgsl.expected.glsl
+++ b/test/intrinsics/gen/mix/2fadab.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec2 res = mix(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   mix_2fadab();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec2 res = mix(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   mix_2fadab();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec2 res = mix(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   mix_2fadab();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/mix/315264.wgsl.expected.glsl b/test/intrinsics/gen/mix/315264.wgsl.expected.glsl
index 474594f..1b17454 100644
--- a/test/intrinsics/gen/mix/315264.wgsl.expected.glsl
+++ b/test/intrinsics/gen/mix/315264.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec3 res = mix(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   mix_315264();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec3 res = mix(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   mix_315264();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec3 res = mix(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   mix_315264();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/mix/4f0b5e.wgsl.expected.glsl b/test/intrinsics/gen/mix/4f0b5e.wgsl.expected.glsl
index df22fe4..076f4dc 100644
--- a/test/intrinsics/gen/mix/4f0b5e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/mix/4f0b5e.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   float res = mix(1.0f, 1.0f, 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   mix_4f0b5e();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   float res = mix(1.0f, 1.0f, 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   mix_4f0b5e();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   float res = mix(1.0f, 1.0f, 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   mix_4f0b5e();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/mix/6f8adc.wgsl.expected.glsl b/test/intrinsics/gen/mix/6f8adc.wgsl.expected.glsl
index 0d74119..b42cd3a 100644
--- a/test/intrinsics/gen/mix/6f8adc.wgsl.expected.glsl
+++ b/test/intrinsics/gen/mix/6f8adc.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec2 res = mix(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   mix_6f8adc();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec2 res = mix(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   mix_6f8adc();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec2 res = mix(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   mix_6f8adc();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/mix/c37ede.wgsl.expected.glsl b/test/intrinsics/gen/mix/c37ede.wgsl.expected.glsl
index 69908a3..9b42c94 100644
--- a/test/intrinsics/gen/mix/c37ede.wgsl.expected.glsl
+++ b/test/intrinsics/gen/mix/c37ede.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec4 res = mix(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   mix_c37ede();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec4 res = mix(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   mix_c37ede();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec4 res = mix(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   mix_c37ede();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/modf/180fed.wgsl.expected.glsl b/test/intrinsics/gen/modf/180fed.wgsl.expected.glsl
index 7ca9bdf..aa46a23 100644
--- a/test/intrinsics/gen/modf/180fed.wgsl.expected.glsl
+++ b/test/intrinsics/gen/modf/180fed.wgsl.expected.glsl
@@ -20,31 +20,18 @@
   modf_result res = tint_modf(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   modf_180fed();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:12: '{ } style initializers' : not supported with this profile: es
 ERROR: 0:12: '' : compilation terminated 
@@ -72,19 +59,14 @@
   modf_result res = tint_modf(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   modf_180fed();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:12: '{ } style initializers' : not supported with this profile: es
 ERROR: 0:12: '' : compilation terminated 
@@ -112,20 +94,15 @@
   modf_result res = tint_modf(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   modf_180fed();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:12: '{ } style initializers' : not supported with this profile: es
 ERROR: 0:12: '' : compilation terminated 
diff --git a/test/intrinsics/gen/modf/9b75f7.wgsl.expected.glsl b/test/intrinsics/gen/modf/9b75f7.wgsl.expected.glsl
index 01bd4b3..236dd37 100644
--- a/test/intrinsics/gen/modf/9b75f7.wgsl.expected.glsl
+++ b/test/intrinsics/gen/modf/9b75f7.wgsl.expected.glsl
@@ -20,31 +20,18 @@
   modf_result_vec3 res = tint_modf(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   modf_9b75f7();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:10: 'float3' : undeclared identifier 
 ERROR: 0:10: '' : compilation terminated 
@@ -72,19 +59,14 @@
   modf_result_vec3 res = tint_modf(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   modf_9b75f7();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:10: 'float3' : undeclared identifier 
 ERROR: 0:10: '' : compilation terminated 
@@ -112,20 +94,15 @@
   modf_result_vec3 res = tint_modf(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   modf_9b75f7();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:10: 'float3' : undeclared identifier 
 ERROR: 0:10: '' : compilation terminated 
diff --git a/test/intrinsics/gen/modf/ec2dbc.wgsl.expected.glsl b/test/intrinsics/gen/modf/ec2dbc.wgsl.expected.glsl
index 603abe5..d4a28d0 100644
--- a/test/intrinsics/gen/modf/ec2dbc.wgsl.expected.glsl
+++ b/test/intrinsics/gen/modf/ec2dbc.wgsl.expected.glsl
@@ -20,31 +20,18 @@
   modf_result_vec4 res = tint_modf(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   modf_ec2dbc();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:10: 'float4' : undeclared identifier 
 ERROR: 0:10: '' : compilation terminated 
@@ -72,19 +59,14 @@
   modf_result_vec4 res = tint_modf(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   modf_ec2dbc();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:10: 'float4' : undeclared identifier 
 ERROR: 0:10: '' : compilation terminated 
@@ -112,20 +94,15 @@
   modf_result_vec4 res = tint_modf(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   modf_ec2dbc();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:10: 'float4' : undeclared identifier 
 ERROR: 0:10: '' : compilation terminated 
diff --git a/test/intrinsics/gen/modf/f5f20d.wgsl.expected.glsl b/test/intrinsics/gen/modf/f5f20d.wgsl.expected.glsl
index c3fde70..5911f45 100644
--- a/test/intrinsics/gen/modf/f5f20d.wgsl.expected.glsl
+++ b/test/intrinsics/gen/modf/f5f20d.wgsl.expected.glsl
@@ -20,31 +20,18 @@
   modf_result_vec2 res = tint_modf(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   modf_f5f20d();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:10: 'float2' : undeclared identifier 
 ERROR: 0:10: '' : compilation terminated 
@@ -72,19 +59,14 @@
   modf_result_vec2 res = tint_modf(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   modf_f5f20d();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:10: 'float2' : undeclared identifier 
 ERROR: 0:10: '' : compilation terminated 
@@ -112,20 +94,15 @@
   modf_result_vec2 res = tint_modf(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   modf_f5f20d();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:10: 'float2' : undeclared identifier 
 ERROR: 0:10: '' : compilation terminated 
diff --git a/test/intrinsics/gen/normalize/64d8c0.wgsl.expected.glsl b/test/intrinsics/gen/normalize/64d8c0.wgsl.expected.glsl
index 4558248..80a6702 100644
--- a/test/intrinsics/gen/normalize/64d8c0.wgsl.expected.glsl
+++ b/test/intrinsics/gen/normalize/64d8c0.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec3 res = normalize(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   normalize_64d8c0();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec3 res = normalize(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   normalize_64d8c0();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec3 res = normalize(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   normalize_64d8c0();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/normalize/9a0aab.wgsl.expected.glsl b/test/intrinsics/gen/normalize/9a0aab.wgsl.expected.glsl
index 959ddaf..4b415e0 100644
--- a/test/intrinsics/gen/normalize/9a0aab.wgsl.expected.glsl
+++ b/test/intrinsics/gen/normalize/9a0aab.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec4 res = normalize(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   normalize_9a0aab();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec4 res = normalize(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   normalize_9a0aab();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec4 res = normalize(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   normalize_9a0aab();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/normalize/fc2ef1.wgsl.expected.glsl b/test/intrinsics/gen/normalize/fc2ef1.wgsl.expected.glsl
index 8c9aaef..572d2b3 100644
--- a/test/intrinsics/gen/normalize/fc2ef1.wgsl.expected.glsl
+++ b/test/intrinsics/gen/normalize/fc2ef1.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec2 res = normalize(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   normalize_fc2ef1();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec2 res = normalize(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   normalize_fc2ef1();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec2 res = normalize(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   normalize_fc2ef1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/pack2x16float/0e97b3.wgsl.expected.glsl b/test/intrinsics/gen/pack2x16float/0e97b3.wgsl.expected.glsl
index efb873d..e4afbe9 100644
--- a/test/intrinsics/gen/pack2x16float/0e97b3.wgsl.expected.glsl
+++ b/test/intrinsics/gen/pack2x16float/0e97b3.wgsl.expected.glsl
@@ -13,31 +13,18 @@
   uint res = tint_pack2x16float(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   pack2x16float_0e97b3();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'uint2' : undeclared identifier 
 ERROR: 0:5: '' : compilation terminated 
@@ -58,19 +45,14 @@
   uint res = tint_pack2x16float(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   pack2x16float_0e97b3();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'uint2' : undeclared identifier 
 ERROR: 0:5: '' : compilation terminated 
@@ -91,20 +73,15 @@
   uint res = tint_pack2x16float(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   pack2x16float_0e97b3();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'uint2' : undeclared identifier 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/intrinsics/gen/pack2x16snorm/6c169b.wgsl.expected.glsl b/test/intrinsics/gen/pack2x16snorm/6c169b.wgsl.expected.glsl
index f3e88a8..d96b685 100644
--- a/test/intrinsics/gen/pack2x16snorm/6c169b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/pack2x16snorm/6c169b.wgsl.expected.glsl
@@ -13,31 +13,18 @@
   uint res = tint_pack2x16snorm(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   pack2x16snorm_6c169b();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'int2' : undeclared identifier 
 ERROR: 0:5: '' : compilation terminated 
@@ -58,19 +45,14 @@
   uint res = tint_pack2x16snorm(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   pack2x16snorm_6c169b();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'int2' : undeclared identifier 
 ERROR: 0:5: '' : compilation terminated 
@@ -91,20 +73,15 @@
   uint res = tint_pack2x16snorm(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   pack2x16snorm_6c169b();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'int2' : undeclared identifier 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/intrinsics/gen/pack2x16unorm/0f08e4.wgsl.expected.glsl b/test/intrinsics/gen/pack2x16unorm/0f08e4.wgsl.expected.glsl
index 039d0c5..0d07a9d 100644
--- a/test/intrinsics/gen/pack2x16unorm/0f08e4.wgsl.expected.glsl
+++ b/test/intrinsics/gen/pack2x16unorm/0f08e4.wgsl.expected.glsl
@@ -13,31 +13,18 @@
   uint res = tint_pack2x16unorm(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   pack2x16unorm_0f08e4();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'uint2' : undeclared identifier 
 ERROR: 0:5: '' : compilation terminated 
@@ -58,19 +45,14 @@
   uint res = tint_pack2x16unorm(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   pack2x16unorm_0f08e4();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'uint2' : undeclared identifier 
 ERROR: 0:5: '' : compilation terminated 
@@ -91,20 +73,15 @@
   uint res = tint_pack2x16unorm(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   pack2x16unorm_0f08e4();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'uint2' : undeclared identifier 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/intrinsics/gen/pack4x8snorm/4d22e7.wgsl.expected.glsl b/test/intrinsics/gen/pack4x8snorm/4d22e7.wgsl.expected.glsl
index bdb1fa7..45a85c9 100644
--- a/test/intrinsics/gen/pack4x8snorm/4d22e7.wgsl.expected.glsl
+++ b/test/intrinsics/gen/pack4x8snorm/4d22e7.wgsl.expected.glsl
@@ -13,31 +13,18 @@
   uint res = tint_pack4x8snorm(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   pack4x8snorm_4d22e7();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'int4' : undeclared identifier 
 ERROR: 0:5: '' : compilation terminated 
@@ -58,19 +45,14 @@
   uint res = tint_pack4x8snorm(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   pack4x8snorm_4d22e7();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'int4' : undeclared identifier 
 ERROR: 0:5: '' : compilation terminated 
@@ -91,20 +73,15 @@
   uint res = tint_pack4x8snorm(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   pack4x8snorm_4d22e7();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'int4' : undeclared identifier 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/intrinsics/gen/pack4x8unorm/95c456.wgsl.expected.glsl b/test/intrinsics/gen/pack4x8unorm/95c456.wgsl.expected.glsl
index 354a8bf..f624f5c 100644
--- a/test/intrinsics/gen/pack4x8unorm/95c456.wgsl.expected.glsl
+++ b/test/intrinsics/gen/pack4x8unorm/95c456.wgsl.expected.glsl
@@ -13,31 +13,18 @@
   uint res = tint_pack4x8unorm(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   pack4x8unorm_95c456();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'uint4' : undeclared identifier 
 ERROR: 0:5: '' : compilation terminated 
@@ -58,19 +45,14 @@
   uint res = tint_pack4x8unorm(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   pack4x8unorm_95c456();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'uint4' : undeclared identifier 
 ERROR: 0:5: '' : compilation terminated 
@@ -91,20 +73,15 @@
   uint res = tint_pack4x8unorm(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   pack4x8unorm_95c456();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'uint4' : undeclared identifier 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/intrinsics/gen/pow/04a908.wgsl.expected.glsl b/test/intrinsics/gen/pow/04a908.wgsl.expected.glsl
index 82ecafa..10dfe85 100644
--- a/test/intrinsics/gen/pow/04a908.wgsl.expected.glsl
+++ b/test/intrinsics/gen/pow/04a908.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec4 res = pow(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   pow_04a908();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec4 res = pow(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   pow_04a908();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec4 res = pow(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   pow_04a908();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/pow/46e029.wgsl.expected.glsl b/test/intrinsics/gen/pow/46e029.wgsl.expected.glsl
index da16789..9597554 100644
--- a/test/intrinsics/gen/pow/46e029.wgsl.expected.glsl
+++ b/test/intrinsics/gen/pow/46e029.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   float res = pow(1.0f, 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   pow_46e029();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   float res = pow(1.0f, 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   pow_46e029();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   float res = pow(1.0f, 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   pow_46e029();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/pow/4a46c9.wgsl.expected.glsl b/test/intrinsics/gen/pow/4a46c9.wgsl.expected.glsl
index f1c85fc..78d361b 100644
--- a/test/intrinsics/gen/pow/4a46c9.wgsl.expected.glsl
+++ b/test/intrinsics/gen/pow/4a46c9.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec3 res = pow(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   pow_4a46c9();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec3 res = pow(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   pow_4a46c9();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec3 res = pow(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   pow_4a46c9();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/pow/e60ea5.wgsl.expected.glsl b/test/intrinsics/gen/pow/e60ea5.wgsl.expected.glsl
index a52a87f..d578be9 100644
--- a/test/intrinsics/gen/pow/e60ea5.wgsl.expected.glsl
+++ b/test/intrinsics/gen/pow/e60ea5.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec2 res = pow(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   pow_e60ea5();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec2 res = pow(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   pow_e60ea5();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec2 res = pow(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   pow_e60ea5();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/radians/09b7fc.wgsl.expected.glsl b/test/intrinsics/gen/radians/09b7fc.wgsl.expected.glsl
index fbfd57b..d2467bf 100644
--- a/test/intrinsics/gen/radians/09b7fc.wgsl.expected.glsl
+++ b/test/intrinsics/gen/radians/09b7fc.wgsl.expected.glsl
@@ -10,31 +10,18 @@
   vec4 res = tint_radians(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   radians_09b7fc();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -47,19 +34,14 @@
   vec4 res = tint_radians(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   radians_09b7fc();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -72,17 +54,12 @@
   vec4 res = tint_radians(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   radians_09b7fc();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/radians/61687a.wgsl.expected.glsl b/test/intrinsics/gen/radians/61687a.wgsl.expected.glsl
index 0c61f00..0894f0a 100644
--- a/test/intrinsics/gen/radians/61687a.wgsl.expected.glsl
+++ b/test/intrinsics/gen/radians/61687a.wgsl.expected.glsl
@@ -10,31 +10,18 @@
   vec2 res = tint_radians(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   radians_61687a();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -47,19 +34,14 @@
   vec2 res = tint_radians(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   radians_61687a();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -72,17 +54,12 @@
   vec2 res = tint_radians(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   radians_61687a();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/radians/6b0ff2.wgsl.expected.glsl b/test/intrinsics/gen/radians/6b0ff2.wgsl.expected.glsl
index 48c9109..a5b5bb6 100644
--- a/test/intrinsics/gen/radians/6b0ff2.wgsl.expected.glsl
+++ b/test/intrinsics/gen/radians/6b0ff2.wgsl.expected.glsl
@@ -10,31 +10,18 @@
   float res = tint_radians(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   radians_6b0ff2();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -47,19 +34,14 @@
   float res = tint_radians(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   radians_6b0ff2();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -72,17 +54,12 @@
   float res = tint_radians(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   radians_6b0ff2();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/radians/f96258.wgsl.expected.glsl b/test/intrinsics/gen/radians/f96258.wgsl.expected.glsl
index e27a435..729c8b5 100644
--- a/test/intrinsics/gen/radians/f96258.wgsl.expected.glsl
+++ b/test/intrinsics/gen/radians/f96258.wgsl.expected.glsl
@@ -10,31 +10,18 @@
   vec3 res = tint_radians(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   radians_f96258();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -47,19 +34,14 @@
   vec3 res = tint_radians(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   radians_f96258();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -72,17 +54,12 @@
   vec3 res = tint_radians(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   radians_f96258();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/reflect/05357e.wgsl.expected.glsl b/test/intrinsics/gen/reflect/05357e.wgsl.expected.glsl
index 34b7aab7..14f04b1 100644
--- a/test/intrinsics/gen/reflect/05357e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/reflect/05357e.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec4 res = reflect(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   reflect_05357e();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec4 res = reflect(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   reflect_05357e();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec4 res = reflect(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   reflect_05357e();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/reflect/b61e10.wgsl.expected.glsl b/test/intrinsics/gen/reflect/b61e10.wgsl.expected.glsl
index 423ee1e..8aa0402 100644
--- a/test/intrinsics/gen/reflect/b61e10.wgsl.expected.glsl
+++ b/test/intrinsics/gen/reflect/b61e10.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec2 res = reflect(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   reflect_b61e10();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec2 res = reflect(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   reflect_b61e10();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec2 res = reflect(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   reflect_b61e10();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/reflect/f47fdb.wgsl.expected.glsl b/test/intrinsics/gen/reflect/f47fdb.wgsl.expected.glsl
index 32b62a0..71cc9ec 100644
--- a/test/intrinsics/gen/reflect/f47fdb.wgsl.expected.glsl
+++ b/test/intrinsics/gen/reflect/f47fdb.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec3 res = reflect(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   reflect_f47fdb();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec3 res = reflect(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   reflect_f47fdb();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec3 res = reflect(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   reflect_f47fdb();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/refract/7e02e6.wgsl.expected.glsl b/test/intrinsics/gen/refract/7e02e6.wgsl.expected.glsl
index c46e333..8e4be77 100644
--- a/test/intrinsics/gen/refract/7e02e6.wgsl.expected.glsl
+++ b/test/intrinsics/gen/refract/7e02e6.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec4 res = refract(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   refract_7e02e6();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec4 res = refract(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   refract_7e02e6();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec4 res = refract(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   refract_7e02e6();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/refract/cbc1d2.wgsl.expected.glsl b/test/intrinsics/gen/refract/cbc1d2.wgsl.expected.glsl
index f7e95c4..37a29b5 100644
--- a/test/intrinsics/gen/refract/cbc1d2.wgsl.expected.glsl
+++ b/test/intrinsics/gen/refract/cbc1d2.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec3 res = refract(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   refract_cbc1d2();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec3 res = refract(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   refract_cbc1d2();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec3 res = refract(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   refract_cbc1d2();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/refract/cd905f.wgsl.expected.glsl b/test/intrinsics/gen/refract/cd905f.wgsl.expected.glsl
index 0f1a3de..5742084 100644
--- a/test/intrinsics/gen/refract/cd905f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/refract/cd905f.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec2 res = refract(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   refract_cd905f();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec2 res = refract(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   refract_cd905f();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec2 res = refract(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   refract_cd905f();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/reverseBits/222177.wgsl.expected.glsl b/test/intrinsics/gen/reverseBits/222177.wgsl.expected.glsl
index bad1323..997a045 100644
--- a/test/intrinsics/gen/reverseBits/222177.wgsl.expected.glsl
+++ b/test/intrinsics/gen/reverseBits/222177.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   ivec2 res = reversebits(ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   reverseBits_222177();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'reversebits' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 2-component vector of int'
@@ -47,19 +34,14 @@
   ivec2 res = reversebits(ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   reverseBits_222177();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'reversebits' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 2-component vector of int'
@@ -75,20 +57,15 @@
   ivec2 res = reversebits(ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   reverseBits_222177();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'reversebits' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 2-component vector of int'
diff --git a/test/intrinsics/gen/reverseBits/35fea9.wgsl.expected.glsl b/test/intrinsics/gen/reverseBits/35fea9.wgsl.expected.glsl
index 13f72b8..1a6b1aa 100644
--- a/test/intrinsics/gen/reverseBits/35fea9.wgsl.expected.glsl
+++ b/test/intrinsics/gen/reverseBits/35fea9.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   uvec4 res = reversebits(uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   reverseBits_35fea9();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'reversebits' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 4-component vector of uint'
@@ -47,19 +34,14 @@
   uvec4 res = reversebits(uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   reverseBits_35fea9();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'reversebits' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of uint'
@@ -75,20 +57,15 @@
   uvec4 res = reversebits(uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   reverseBits_35fea9();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'reversebits' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 4-component vector of uint'
diff --git a/test/intrinsics/gen/reverseBits/4dbd6f.wgsl.expected.glsl b/test/intrinsics/gen/reverseBits/4dbd6f.wgsl.expected.glsl
index b512ef1..1bb351a 100644
--- a/test/intrinsics/gen/reverseBits/4dbd6f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/reverseBits/4dbd6f.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   ivec4 res = reversebits(ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   reverseBits_4dbd6f();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'reversebits' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 4-component vector of int'
@@ -47,19 +34,14 @@
   ivec4 res = reversebits(ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   reverseBits_4dbd6f();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'reversebits' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of int'
@@ -75,20 +57,15 @@
   ivec4 res = reversebits(ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   reverseBits_4dbd6f();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'reversebits' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 4-component vector of int'
diff --git a/test/intrinsics/gen/reverseBits/7c4269.wgsl.expected.glsl b/test/intrinsics/gen/reverseBits/7c4269.wgsl.expected.glsl
index b655cf2..dc56224 100644
--- a/test/intrinsics/gen/reverseBits/7c4269.wgsl.expected.glsl
+++ b/test/intrinsics/gen/reverseBits/7c4269.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   int res = reversebits(1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   reverseBits_7c4269();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'reversebits' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
@@ -47,19 +34,14 @@
   int res = reversebits(1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   reverseBits_7c4269();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'reversebits' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump int'
@@ -75,20 +57,15 @@
   int res = reversebits(1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   reverseBits_7c4269();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'reversebits' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp int'
diff --git a/test/intrinsics/gen/reverseBits/a6ccd4.wgsl.expected.glsl b/test/intrinsics/gen/reverseBits/a6ccd4.wgsl.expected.glsl
index 5956ce2..355b5fa 100644
--- a/test/intrinsics/gen/reverseBits/a6ccd4.wgsl.expected.glsl
+++ b/test/intrinsics/gen/reverseBits/a6ccd4.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   uvec3 res = reversebits(uvec3(0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   reverseBits_a6ccd4();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'reversebits' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 3-component vector of uint'
@@ -47,19 +34,14 @@
   uvec3 res = reversebits(uvec3(0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   reverseBits_a6ccd4();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'reversebits' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 3-component vector of uint'
@@ -75,20 +57,15 @@
   uvec3 res = reversebits(uvec3(0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   reverseBits_a6ccd4();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'reversebits' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 3-component vector of uint'
diff --git a/test/intrinsics/gen/reverseBits/c21bc1.wgsl.expected.glsl b/test/intrinsics/gen/reverseBits/c21bc1.wgsl.expected.glsl
index d79516d..2132f70 100644
--- a/test/intrinsics/gen/reverseBits/c21bc1.wgsl.expected.glsl
+++ b/test/intrinsics/gen/reverseBits/c21bc1.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   ivec3 res = reversebits(ivec3(0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   reverseBits_c21bc1();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'reversebits' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 3-component vector of int'
@@ -47,19 +34,14 @@
   ivec3 res = reversebits(ivec3(0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   reverseBits_c21bc1();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'reversebits' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 3-component vector of int'
@@ -75,20 +57,15 @@
   ivec3 res = reversebits(ivec3(0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   reverseBits_c21bc1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'reversebits' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 3-component vector of int'
diff --git a/test/intrinsics/gen/reverseBits/e1f4c1.wgsl.expected.glsl b/test/intrinsics/gen/reverseBits/e1f4c1.wgsl.expected.glsl
index 4d22669..77c6c6a 100644
--- a/test/intrinsics/gen/reverseBits/e1f4c1.wgsl.expected.glsl
+++ b/test/intrinsics/gen/reverseBits/e1f4c1.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   uvec2 res = reversebits(uvec2(0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   reverseBits_e1f4c1();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'reversebits' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 2-component vector of uint'
@@ -47,19 +34,14 @@
   uvec2 res = reversebits(uvec2(0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   reverseBits_e1f4c1();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'reversebits' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump 2-component vector of uint'
@@ -75,20 +57,15 @@
   uvec2 res = reversebits(uvec2(0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   reverseBits_e1f4c1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'reversebits' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp 2-component vector of uint'
diff --git a/test/intrinsics/gen/reverseBits/e31adf.wgsl.expected.glsl b/test/intrinsics/gen/reverseBits/e31adf.wgsl.expected.glsl
index de78187..a30d33d 100644
--- a/test/intrinsics/gen/reverseBits/e31adf.wgsl.expected.glsl
+++ b/test/intrinsics/gen/reverseBits/e31adf.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   uint res = reversebits(1u);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   reverseBits_e31adf();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'reversebits' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp uint'
@@ -47,19 +34,14 @@
   uint res = reversebits(1u);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   reverseBits_e31adf();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'reversebits' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump uint'
@@ -75,20 +57,15 @@
   uint res = reversebits(1u);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   reverseBits_e31adf();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'reversebits' : no matching overloaded function found 
 ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp uint'
diff --git a/test/intrinsics/gen/round/106c0b.wgsl.expected.glsl b/test/intrinsics/gen/round/106c0b.wgsl.expected.glsl
index 543cdfa..e970e88 100644
--- a/test/intrinsics/gen/round/106c0b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/round/106c0b.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec4 res = round(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   round_106c0b();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec4 res = round(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   round_106c0b();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec4 res = round(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   round_106c0b();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/round/1c7897.wgsl.expected.glsl b/test/intrinsics/gen/round/1c7897.wgsl.expected.glsl
index 938fc0a..c506bac 100644
--- a/test/intrinsics/gen/round/1c7897.wgsl.expected.glsl
+++ b/test/intrinsics/gen/round/1c7897.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec3 res = round(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   round_1c7897();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec3 res = round(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   round_1c7897();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec3 res = round(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   round_1c7897();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/round/52c84d.wgsl.expected.glsl b/test/intrinsics/gen/round/52c84d.wgsl.expected.glsl
index 1747df8..94b648b 100644
--- a/test/intrinsics/gen/round/52c84d.wgsl.expected.glsl
+++ b/test/intrinsics/gen/round/52c84d.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec2 res = round(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   round_52c84d();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec2 res = round(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   round_52c84d();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec2 res = round(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   round_52c84d();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/round/9edc38.wgsl.expected.glsl b/test/intrinsics/gen/round/9edc38.wgsl.expected.glsl
index faa0f32..e76ae77 100644
--- a/test/intrinsics/gen/round/9edc38.wgsl.expected.glsl
+++ b/test/intrinsics/gen/round/9edc38.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   float res = round(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   round_9edc38();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   float res = round(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   round_9edc38();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   float res = round(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   round_9edc38();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/select/00b848.wgsl.expected.glsl b/test/intrinsics/gen/select/00b848.wgsl.expected.glsl
index a6559e0..7b6954a 100644
--- a/test/intrinsics/gen/select/00b848.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/00b848.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   ivec2 res = (bvec2(false, false) ? ivec2(0, 0) : ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   select_00b848();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : boolean expression expected 
 ERROR: 0:5: '' : compilation terminated 
@@ -46,19 +33,14 @@
   ivec2 res = (bvec2(false, false) ? ivec2(0, 0) : ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   select_00b848();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : boolean expression expected 
 ERROR: 0:5: '' : compilation terminated 
@@ -73,20 +55,15 @@
   ivec2 res = (bvec2(false, false) ? ivec2(0, 0) : ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   select_00b848();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : boolean expression expected 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/intrinsics/gen/select/01e2cd.wgsl.expected.glsl b/test/intrinsics/gen/select/01e2cd.wgsl.expected.glsl
index c414d87..477c925 100644
--- a/test/intrinsics/gen/select/01e2cd.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/01e2cd.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   ivec3 res = (bvec3(false, false, false) ? ivec3(0, 0, 0) : ivec3(0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   select_01e2cd();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : boolean expression expected 
 ERROR: 0:5: '' : compilation terminated 
@@ -46,19 +33,14 @@
   ivec3 res = (bvec3(false, false, false) ? ivec3(0, 0, 0) : ivec3(0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   select_01e2cd();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : boolean expression expected 
 ERROR: 0:5: '' : compilation terminated 
@@ -73,20 +55,15 @@
   ivec3 res = (bvec3(false, false, false) ? ivec3(0, 0, 0) : ivec3(0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   select_01e2cd();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : boolean expression expected 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/intrinsics/gen/select/087ea4.wgsl.expected.glsl b/test/intrinsics/gen/select/087ea4.wgsl.expected.glsl
index 4aac921..037a6a4 100644
--- a/test/intrinsics/gen/select/087ea4.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/087ea4.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   uvec4 res = (false ? uvec4(0u, 0u, 0u, 0u) : uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   select_087ea4();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   uvec4 res = (false ? uvec4(0u, 0u, 0u, 0u) : uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   select_087ea4();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   uvec4 res = (false ? uvec4(0u, 0u, 0u, 0u) : uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   select_087ea4();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/select/1e960b.wgsl.expected.glsl b/test/intrinsics/gen/select/1e960b.wgsl.expected.glsl
index 1c22a52..0a06c7e 100644
--- a/test/intrinsics/gen/select/1e960b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/1e960b.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   uvec2 res = (bvec2(false, false) ? uvec2(0u, 0u) : uvec2(0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   select_1e960b();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : boolean expression expected 
 ERROR: 0:5: '' : compilation terminated 
@@ -46,19 +33,14 @@
   uvec2 res = (bvec2(false, false) ? uvec2(0u, 0u) : uvec2(0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   select_1e960b();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : boolean expression expected 
 ERROR: 0:5: '' : compilation terminated 
@@ -73,20 +55,15 @@
   uvec2 res = (bvec2(false, false) ? uvec2(0u, 0u) : uvec2(0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   select_1e960b();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : boolean expression expected 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/intrinsics/gen/select/266aff.wgsl.expected.glsl b/test/intrinsics/gen/select/266aff.wgsl.expected.glsl
index 239efd1..06c7dea 100644
--- a/test/intrinsics/gen/select/266aff.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/266aff.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   vec2 res = (bvec2(false, false) ? vec2(0.0f, 0.0f) : vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   select_266aff();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : boolean expression expected 
 ERROR: 0:5: '' : compilation terminated 
@@ -46,19 +33,14 @@
   vec2 res = (bvec2(false, false) ? vec2(0.0f, 0.0f) : vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   select_266aff();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : boolean expression expected 
 ERROR: 0:5: '' : compilation terminated 
@@ -73,20 +55,15 @@
   vec2 res = (bvec2(false, false) ? vec2(0.0f, 0.0f) : vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   select_266aff();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : boolean expression expected 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/intrinsics/gen/select/28a27e.wgsl.expected.glsl b/test/intrinsics/gen/select/28a27e.wgsl.expected.glsl
index 303c8ee..6ce8510 100644
--- a/test/intrinsics/gen/select/28a27e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/28a27e.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   uvec3 res = (bvec3(false, false, false) ? uvec3(0u, 0u, 0u) : uvec3(0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   select_28a27e();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : boolean expression expected 
 ERROR: 0:5: '' : compilation terminated 
@@ -46,19 +33,14 @@
   uvec3 res = (bvec3(false, false, false) ? uvec3(0u, 0u, 0u) : uvec3(0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   select_28a27e();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : boolean expression expected 
 ERROR: 0:5: '' : compilation terminated 
@@ -73,20 +55,15 @@
   uvec3 res = (bvec3(false, false, false) ? uvec3(0u, 0u, 0u) : uvec3(0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   select_28a27e();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : boolean expression expected 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/intrinsics/gen/select/3c25ce.wgsl.expected.glsl b/test/intrinsics/gen/select/3c25ce.wgsl.expected.glsl
index b89b649..baca720 100644
--- a/test/intrinsics/gen/select/3c25ce.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/3c25ce.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   bvec3 res = (false ? bvec3(false, false, false) : bvec3(false, false, false));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   select_3c25ce();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   bvec3 res = (false ? bvec3(false, false, false) : bvec3(false, false, false));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   select_3c25ce();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   bvec3 res = (false ? bvec3(false, false, false) : bvec3(false, false, false));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   select_3c25ce();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/select/416e14.wgsl.expected.glsl b/test/intrinsics/gen/select/416e14.wgsl.expected.glsl
index df0fd7e..303e09a 100644
--- a/test/intrinsics/gen/select/416e14.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/416e14.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   float res = (false ? 1.0f : 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   select_416e14();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   float res = (false ? 1.0f : 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   select_416e14();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   float res = (false ? 1.0f : 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   select_416e14();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/select/51b047.wgsl.expected.glsl b/test/intrinsics/gen/select/51b047.wgsl.expected.glsl
index e8c162b..1f2f26e 100644
--- a/test/intrinsics/gen/select/51b047.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/51b047.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   uvec2 res = (false ? uvec2(0u, 0u) : uvec2(0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   select_51b047();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   uvec2 res = (false ? uvec2(0u, 0u) : uvec2(0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   select_51b047();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   uvec2 res = (false ? uvec2(0u, 0u) : uvec2(0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   select_51b047();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/select/713567.wgsl.expected.glsl b/test/intrinsics/gen/select/713567.wgsl.expected.glsl
index 6c78e34..fd2bfec 100644
--- a/test/intrinsics/gen/select/713567.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/713567.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec4 res = (false ? vec4(0.0f, 0.0f, 0.0f, 0.0f) : vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   select_713567();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec4 res = (false ? vec4(0.0f, 0.0f, 0.0f, 0.0f) : vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   select_713567();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec4 res = (false ? vec4(0.0f, 0.0f, 0.0f, 0.0f) : vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   select_713567();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/select/78be5f.wgsl.expected.glsl b/test/intrinsics/gen/select/78be5f.wgsl.expected.glsl
index 285c139..ff2b925 100644
--- a/test/intrinsics/gen/select/78be5f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/78be5f.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec3 res = (false ? vec3(0.0f, 0.0f, 0.0f) : vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   select_78be5f();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec3 res = (false ? vec3(0.0f, 0.0f, 0.0f) : vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   select_78be5f();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec3 res = (false ? vec3(0.0f, 0.0f, 0.0f) : vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   select_78be5f();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/select/80a9a9.wgsl.expected.glsl b/test/intrinsics/gen/select/80a9a9.wgsl.expected.glsl
index 49e4ec5..2d43949 100644
--- a/test/intrinsics/gen/select/80a9a9.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/80a9a9.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   bvec3 res = (bvec3(false, false, false) ? bvec3(false, false, false) : bvec3(false, false, false));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   select_80a9a9();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : boolean expression expected 
 ERROR: 0:5: '' : compilation terminated 
@@ -46,19 +33,14 @@
   bvec3 res = (bvec3(false, false, false) ? bvec3(false, false, false) : bvec3(false, false, false));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   select_80a9a9();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : boolean expression expected 
 ERROR: 0:5: '' : compilation terminated 
@@ -73,20 +55,15 @@
   bvec3 res = (bvec3(false, false, false) ? bvec3(false, false, false) : bvec3(false, false, false));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   select_80a9a9();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : boolean expression expected 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/intrinsics/gen/select/8fa62c.wgsl.expected.glsl b/test/intrinsics/gen/select/8fa62c.wgsl.expected.glsl
index fb5d604..5914cdd 100644
--- a/test/intrinsics/gen/select/8fa62c.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/8fa62c.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   ivec3 res = (false ? ivec3(0, 0, 0) : ivec3(0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   select_8fa62c();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   ivec3 res = (false ? ivec3(0, 0, 0) : ivec3(0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   select_8fa62c();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   ivec3 res = (false ? ivec3(0, 0, 0) : ivec3(0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   select_8fa62c();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/select/99f883.wgsl.expected.glsl b/test/intrinsics/gen/select/99f883.wgsl.expected.glsl
index c4a5fdb..7245819 100644
--- a/test/intrinsics/gen/select/99f883.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/99f883.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   uint res = (false ? 1u : 1u);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   select_99f883();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   uint res = (false ? 1u : 1u);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   select_99f883();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   uint res = (false ? 1u : 1u);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   select_99f883();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/select/a2860e.wgsl.expected.glsl b/test/intrinsics/gen/select/a2860e.wgsl.expected.glsl
index 823a57d..3ca06e2 100644
--- a/test/intrinsics/gen/select/a2860e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/a2860e.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   ivec4 res = (bvec4(false, false, false, false) ? ivec4(0, 0, 0, 0) : ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   select_a2860e();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : boolean expression expected 
 ERROR: 0:5: '' : compilation terminated 
@@ -46,19 +33,14 @@
   ivec4 res = (bvec4(false, false, false, false) ? ivec4(0, 0, 0, 0) : ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   select_a2860e();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : boolean expression expected 
 ERROR: 0:5: '' : compilation terminated 
@@ -73,20 +55,15 @@
   ivec4 res = (bvec4(false, false, false, false) ? ivec4(0, 0, 0, 0) : ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   select_a2860e();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : boolean expression expected 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/intrinsics/gen/select/ab069f.wgsl.expected.glsl b/test/intrinsics/gen/select/ab069f.wgsl.expected.glsl
index 61f2ca1..9127716 100644
--- a/test/intrinsics/gen/select/ab069f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/ab069f.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   ivec4 res = (false ? ivec4(0, 0, 0, 0) : ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   select_ab069f();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   ivec4 res = (false ? ivec4(0, 0, 0, 0) : ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   select_ab069f();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   ivec4 res = (false ? ivec4(0, 0, 0, 0) : ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   select_ab069f();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/select/b04721.wgsl.expected.glsl b/test/intrinsics/gen/select/b04721.wgsl.expected.glsl
index 816bbbf..a9e543e 100644
--- a/test/intrinsics/gen/select/b04721.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/b04721.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   uvec3 res = (false ? uvec3(0u, 0u, 0u) : uvec3(0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   select_b04721();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   uvec3 res = (false ? uvec3(0u, 0u, 0u) : uvec3(0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   select_b04721();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   uvec3 res = (false ? uvec3(0u, 0u, 0u) : uvec3(0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   select_b04721();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/select/bb447f.wgsl.expected.glsl b/test/intrinsics/gen/select/bb447f.wgsl.expected.glsl
index 554f56e..0ba7a30 100644
--- a/test/intrinsics/gen/select/bb447f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/bb447f.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   ivec2 res = (false ? ivec2(0, 0) : ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   select_bb447f();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   ivec2 res = (false ? ivec2(0, 0) : ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   select_bb447f();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   ivec2 res = (false ? ivec2(0, 0) : ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   select_bb447f();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/select/bb8aae.wgsl.expected.glsl b/test/intrinsics/gen/select/bb8aae.wgsl.expected.glsl
index d2b1607..0e1a50e 100644
--- a/test/intrinsics/gen/select/bb8aae.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/bb8aae.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   vec4 res = (bvec4(false, false, false, false) ? vec4(0.0f, 0.0f, 0.0f, 0.0f) : vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   select_bb8aae();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : boolean expression expected 
 ERROR: 0:5: '' : compilation terminated 
@@ -46,19 +33,14 @@
   vec4 res = (bvec4(false, false, false, false) ? vec4(0.0f, 0.0f, 0.0f, 0.0f) : vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   select_bb8aae();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : boolean expression expected 
 ERROR: 0:5: '' : compilation terminated 
@@ -73,20 +55,15 @@
   vec4 res = (bvec4(false, false, false, false) ? vec4(0.0f, 0.0f, 0.0f, 0.0f) : vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   select_bb8aae();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : boolean expression expected 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/intrinsics/gen/select/bf3d29.wgsl.expected.glsl b/test/intrinsics/gen/select/bf3d29.wgsl.expected.glsl
index 8cf102e..697a02c 100644
--- a/test/intrinsics/gen/select/bf3d29.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/bf3d29.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec2 res = (false ? vec2(0.0f, 0.0f) : vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   select_bf3d29();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec2 res = (false ? vec2(0.0f, 0.0f) : vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   select_bf3d29();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec2 res = (false ? vec2(0.0f, 0.0f) : vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   select_bf3d29();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/select/c31f9e.wgsl.expected.glsl b/test/intrinsics/gen/select/c31f9e.wgsl.expected.glsl
index 6cc94bc..20c38f7 100644
--- a/test/intrinsics/gen/select/c31f9e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/c31f9e.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   bool res = (false ? false : false);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   select_c31f9e();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   bool res = (false ? false : false);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   select_c31f9e();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   bool res = (false ? false : false);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   select_c31f9e();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/select/c41bd1.wgsl.expected.glsl b/test/intrinsics/gen/select/c41bd1.wgsl.expected.glsl
index ca938a8..926bbaf 100644
--- a/test/intrinsics/gen/select/c41bd1.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/c41bd1.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   bvec4 res = (false ? bvec4(false, false, false, false) : bvec4(false, false, false, false));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   select_c41bd1();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   bvec4 res = (false ? bvec4(false, false, false, false) : bvec4(false, false, false, false));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   select_c41bd1();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   bvec4 res = (false ? bvec4(false, false, false, false) : bvec4(false, false, false, false));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   select_c41bd1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/select/c4a4ef.wgsl.expected.glsl b/test/intrinsics/gen/select/c4a4ef.wgsl.expected.glsl
index ab85b6e..4ee2ee9 100644
--- a/test/intrinsics/gen/select/c4a4ef.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/c4a4ef.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   uvec4 res = (bvec4(false, false, false, false) ? uvec4(0u, 0u, 0u, 0u) : uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   select_c4a4ef();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : boolean expression expected 
 ERROR: 0:5: '' : compilation terminated 
@@ -46,19 +33,14 @@
   uvec4 res = (bvec4(false, false, false, false) ? uvec4(0u, 0u, 0u, 0u) : uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   select_c4a4ef();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : boolean expression expected 
 ERROR: 0:5: '' : compilation terminated 
@@ -73,20 +55,15 @@
   uvec4 res = (bvec4(false, false, false, false) ? uvec4(0u, 0u, 0u, 0u) : uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   select_c4a4ef();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : boolean expression expected 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/intrinsics/gen/select/cb9301.wgsl.expected.glsl b/test/intrinsics/gen/select/cb9301.wgsl.expected.glsl
index 89cfd90..87502ee 100644
--- a/test/intrinsics/gen/select/cb9301.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/cb9301.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   bvec2 res = (bvec2(false, false) ? bvec2(false, false) : bvec2(false, false));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   select_cb9301();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : boolean expression expected 
 ERROR: 0:5: '' : compilation terminated 
@@ -46,19 +33,14 @@
   bvec2 res = (bvec2(false, false) ? bvec2(false, false) : bvec2(false, false));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   select_cb9301();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : boolean expression expected 
 ERROR: 0:5: '' : compilation terminated 
@@ -73,20 +55,15 @@
   bvec2 res = (bvec2(false, false) ? bvec2(false, false) : bvec2(false, false));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   select_cb9301();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : boolean expression expected 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/intrinsics/gen/select/e3e028.wgsl.expected.glsl b/test/intrinsics/gen/select/e3e028.wgsl.expected.glsl
index 88d5c1a..b8d0f12 100644
--- a/test/intrinsics/gen/select/e3e028.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/e3e028.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   bvec4 res = (bvec4(false, false, false, false) ? bvec4(false, false, false, false) : bvec4(false, false, false, false));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   select_e3e028();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : boolean expression expected 
 ERROR: 0:5: '' : compilation terminated 
@@ -46,19 +33,14 @@
   bvec4 res = (bvec4(false, false, false, false) ? bvec4(false, false, false, false) : bvec4(false, false, false, false));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   select_e3e028();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : boolean expression expected 
 ERROR: 0:5: '' : compilation terminated 
@@ -73,20 +55,15 @@
   bvec4 res = (bvec4(false, false, false, false) ? bvec4(false, false, false, false) : bvec4(false, false, false, false));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   select_e3e028();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : boolean expression expected 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/intrinsics/gen/select/ebfea2.wgsl.expected.glsl b/test/intrinsics/gen/select/ebfea2.wgsl.expected.glsl
index 7158954..4f56425 100644
--- a/test/intrinsics/gen/select/ebfea2.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/ebfea2.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   vec3 res = (bvec3(false, false, false) ? vec3(0.0f, 0.0f, 0.0f) : vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   select_ebfea2();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : boolean expression expected 
 ERROR: 0:5: '' : compilation terminated 
@@ -46,19 +33,14 @@
   vec3 res = (bvec3(false, false, false) ? vec3(0.0f, 0.0f, 0.0f) : vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   select_ebfea2();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : boolean expression expected 
 ERROR: 0:5: '' : compilation terminated 
@@ -73,20 +55,15 @@
   vec3 res = (bvec3(false, false, false) ? vec3(0.0f, 0.0f, 0.0f) : vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   select_ebfea2();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : boolean expression expected 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/intrinsics/gen/select/ed8a15.wgsl.expected.glsl b/test/intrinsics/gen/select/ed8a15.wgsl.expected.glsl
index 4e8bed7..c974822 100644
--- a/test/intrinsics/gen/select/ed8a15.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/ed8a15.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   int res = (false ? 1 : 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   select_ed8a15();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   int res = (false ? 1 : 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   select_ed8a15();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   int res = (false ? 1 : 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   select_ed8a15();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/select/fb7e53.wgsl.expected.glsl b/test/intrinsics/gen/select/fb7e53.wgsl.expected.glsl
index b928a2d..d3d31f8 100644
--- a/test/intrinsics/gen/select/fb7e53.wgsl.expected.glsl
+++ b/test/intrinsics/gen/select/fb7e53.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   bvec2 res = (false ? bvec2(false, false) : bvec2(false, false));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   select_fb7e53();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   bvec2 res = (false ? bvec2(false, false) : bvec2(false, false));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   select_fb7e53();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   bvec2 res = (false ? bvec2(false, false) : bvec2(false, false));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   select_fb7e53();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/sign/159665.wgsl.expected.glsl b/test/intrinsics/gen/sign/159665.wgsl.expected.glsl
index 37c7796..942f155 100644
--- a/test/intrinsics/gen/sign/159665.wgsl.expected.glsl
+++ b/test/intrinsics/gen/sign/159665.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec3 res = sign(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   sign_159665();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec3 res = sign(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   sign_159665();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec3 res = sign(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   sign_159665();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/sign/b8f634.wgsl.expected.glsl b/test/intrinsics/gen/sign/b8f634.wgsl.expected.glsl
index cd159a8..05137b1 100644
--- a/test/intrinsics/gen/sign/b8f634.wgsl.expected.glsl
+++ b/test/intrinsics/gen/sign/b8f634.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec4 res = sign(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   sign_b8f634();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec4 res = sign(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   sign_b8f634();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec4 res = sign(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   sign_b8f634();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/sign/d065d8.wgsl.expected.glsl b/test/intrinsics/gen/sign/d065d8.wgsl.expected.glsl
index f19d9da..8b415cb 100644
--- a/test/intrinsics/gen/sign/d065d8.wgsl.expected.glsl
+++ b/test/intrinsics/gen/sign/d065d8.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec2 res = sign(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   sign_d065d8();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec2 res = sign(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   sign_d065d8();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec2 res = sign(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   sign_d065d8();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/sign/dd790e.wgsl.expected.glsl b/test/intrinsics/gen/sign/dd790e.wgsl.expected.glsl
index 4a4a7d1..b880154 100644
--- a/test/intrinsics/gen/sign/dd790e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/sign/dd790e.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   float res = sign(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   sign_dd790e();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   float res = sign(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   sign_dd790e();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   float res = sign(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   sign_dd790e();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/sin/01f241.wgsl.expected.glsl b/test/intrinsics/gen/sin/01f241.wgsl.expected.glsl
index 0dcac18..9c7240d 100644
--- a/test/intrinsics/gen/sin/01f241.wgsl.expected.glsl
+++ b/test/intrinsics/gen/sin/01f241.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec3 res = sin(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   sin_01f241();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec3 res = sin(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   sin_01f241();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec3 res = sin(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   sin_01f241();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/sin/4e3979.wgsl.expected.glsl b/test/intrinsics/gen/sin/4e3979.wgsl.expected.glsl
index 56583fd..1e5d135 100644
--- a/test/intrinsics/gen/sin/4e3979.wgsl.expected.glsl
+++ b/test/intrinsics/gen/sin/4e3979.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec4 res = sin(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   sin_4e3979();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec4 res = sin(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   sin_4e3979();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec4 res = sin(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   sin_4e3979();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/sin/b78c91.wgsl.expected.glsl b/test/intrinsics/gen/sin/b78c91.wgsl.expected.glsl
index e4382fa..de61dcf 100644
--- a/test/intrinsics/gen/sin/b78c91.wgsl.expected.glsl
+++ b/test/intrinsics/gen/sin/b78c91.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   float res = sin(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   sin_b78c91();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   float res = sin(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   sin_b78c91();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   float res = sin(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   sin_b78c91();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/sin/fc8bc4.wgsl.expected.glsl b/test/intrinsics/gen/sin/fc8bc4.wgsl.expected.glsl
index 6a5df55..d475617 100644
--- a/test/intrinsics/gen/sin/fc8bc4.wgsl.expected.glsl
+++ b/test/intrinsics/gen/sin/fc8bc4.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec2 res = sin(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   sin_fc8bc4();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec2 res = sin(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   sin_fc8bc4();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec2 res = sin(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   sin_fc8bc4();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/sinh/445e33.wgsl.expected.glsl b/test/intrinsics/gen/sinh/445e33.wgsl.expected.glsl
index 81eb153..c60e3ac 100644
--- a/test/intrinsics/gen/sinh/445e33.wgsl.expected.glsl
+++ b/test/intrinsics/gen/sinh/445e33.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec4 res = sinh(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   sinh_445e33();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec4 res = sinh(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   sinh_445e33();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec4 res = sinh(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   sinh_445e33();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/sinh/7bb598.wgsl.expected.glsl b/test/intrinsics/gen/sinh/7bb598.wgsl.expected.glsl
index 37ed119..5f7835a 100644
--- a/test/intrinsics/gen/sinh/7bb598.wgsl.expected.glsl
+++ b/test/intrinsics/gen/sinh/7bb598.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   float res = sinh(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   sinh_7bb598();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   float res = sinh(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   sinh_7bb598();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   float res = sinh(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   sinh_7bb598();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/sinh/b9860e.wgsl.expected.glsl b/test/intrinsics/gen/sinh/b9860e.wgsl.expected.glsl
index 43896ef..1000a48 100644
--- a/test/intrinsics/gen/sinh/b9860e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/sinh/b9860e.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec2 res = sinh(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   sinh_b9860e();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec2 res = sinh(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   sinh_b9860e();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec2 res = sinh(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   sinh_b9860e();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/sinh/c9a5eb.wgsl.expected.glsl b/test/intrinsics/gen/sinh/c9a5eb.wgsl.expected.glsl
index aa91888..bec04b2 100644
--- a/test/intrinsics/gen/sinh/c9a5eb.wgsl.expected.glsl
+++ b/test/intrinsics/gen/sinh/c9a5eb.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec3 res = sinh(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   sinh_c9a5eb();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec3 res = sinh(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   sinh_c9a5eb();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec3 res = sinh(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   sinh_c9a5eb();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/smoothStep/5f615b.wgsl.expected.glsl b/test/intrinsics/gen/smoothStep/5f615b.wgsl.expected.glsl
index 8555078..0c40f90 100644
--- a/test/intrinsics/gen/smoothStep/5f615b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/smoothStep/5f615b.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec4 res = smoothstep(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   smoothStep_5f615b();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec4 res = smoothstep(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   smoothStep_5f615b();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec4 res = smoothstep(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   smoothStep_5f615b();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/smoothStep/658be3.wgsl.expected.glsl b/test/intrinsics/gen/smoothStep/658be3.wgsl.expected.glsl
index 3c64b14..e4f9bc9 100644
--- a/test/intrinsics/gen/smoothStep/658be3.wgsl.expected.glsl
+++ b/test/intrinsics/gen/smoothStep/658be3.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec3 res = smoothstep(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   smoothStep_658be3();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec3 res = smoothstep(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   smoothStep_658be3();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec3 res = smoothstep(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   smoothStep_658be3();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/smoothStep/c11eef.wgsl.expected.glsl b/test/intrinsics/gen/smoothStep/c11eef.wgsl.expected.glsl
index 0d3cc99..f90da5a 100644
--- a/test/intrinsics/gen/smoothStep/c11eef.wgsl.expected.glsl
+++ b/test/intrinsics/gen/smoothStep/c11eef.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec2 res = smoothstep(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   smoothStep_c11eef();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec2 res = smoothstep(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   smoothStep_c11eef();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec2 res = smoothstep(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   smoothStep_c11eef();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/smoothStep/cb0bfb.wgsl.expected.glsl b/test/intrinsics/gen/smoothStep/cb0bfb.wgsl.expected.glsl
index d18d1ff..999364b 100644
--- a/test/intrinsics/gen/smoothStep/cb0bfb.wgsl.expected.glsl
+++ b/test/intrinsics/gen/smoothStep/cb0bfb.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   float res = smoothstep(1.0f, 1.0f, 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   smoothStep_cb0bfb();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   float res = smoothstep(1.0f, 1.0f, 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   smoothStep_cb0bfb();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   float res = smoothstep(1.0f, 1.0f, 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   smoothStep_cb0bfb();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/sqrt/20c74e.wgsl.expected.glsl b/test/intrinsics/gen/sqrt/20c74e.wgsl.expected.glsl
index 87e1877..f619350 100644
--- a/test/intrinsics/gen/sqrt/20c74e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/sqrt/20c74e.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   float res = sqrt(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   sqrt_20c74e();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   float res = sqrt(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   sqrt_20c74e();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   float res = sqrt(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   sqrt_20c74e();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/sqrt/8c7024.wgsl.expected.glsl b/test/intrinsics/gen/sqrt/8c7024.wgsl.expected.glsl
index 9f52b9f..2f4abe4 100644
--- a/test/intrinsics/gen/sqrt/8c7024.wgsl.expected.glsl
+++ b/test/intrinsics/gen/sqrt/8c7024.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec2 res = sqrt(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   sqrt_8c7024();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec2 res = sqrt(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   sqrt_8c7024();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec2 res = sqrt(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   sqrt_8c7024();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/sqrt/aa0d7a.wgsl.expected.glsl b/test/intrinsics/gen/sqrt/aa0d7a.wgsl.expected.glsl
index 32e6ead..754492c 100644
--- a/test/intrinsics/gen/sqrt/aa0d7a.wgsl.expected.glsl
+++ b/test/intrinsics/gen/sqrt/aa0d7a.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec4 res = sqrt(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   sqrt_aa0d7a();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec4 res = sqrt(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   sqrt_aa0d7a();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec4 res = sqrt(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   sqrt_aa0d7a();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/sqrt/f8c59a.wgsl.expected.glsl b/test/intrinsics/gen/sqrt/f8c59a.wgsl.expected.glsl
index d2209a9..efbb532 100644
--- a/test/intrinsics/gen/sqrt/f8c59a.wgsl.expected.glsl
+++ b/test/intrinsics/gen/sqrt/f8c59a.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec3 res = sqrt(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   sqrt_f8c59a();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec3 res = sqrt(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   sqrt_f8c59a();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec3 res = sqrt(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   sqrt_f8c59a();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/step/0b073b.wgsl.expected.glsl b/test/intrinsics/gen/step/0b073b.wgsl.expected.glsl
index 0f72929..563e500 100644
--- a/test/intrinsics/gen/step/0b073b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/step/0b073b.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   float res = step(1.0f, 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   step_0b073b();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   float res = step(1.0f, 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   step_0b073b();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   float res = step(1.0f, 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   step_0b073b();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/step/19accd.wgsl.expected.glsl b/test/intrinsics/gen/step/19accd.wgsl.expected.glsl
index 7d2918f..d339cac 100644
--- a/test/intrinsics/gen/step/19accd.wgsl.expected.glsl
+++ b/test/intrinsics/gen/step/19accd.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec2 res = step(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   step_19accd();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec2 res = step(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   step_19accd();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec2 res = step(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   step_19accd();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/step/334303.wgsl.expected.glsl b/test/intrinsics/gen/step/334303.wgsl.expected.glsl
index f322369..786bc77 100644
--- a/test/intrinsics/gen/step/334303.wgsl.expected.glsl
+++ b/test/intrinsics/gen/step/334303.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec3 res = step(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   step_334303();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec3 res = step(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   step_334303();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec3 res = step(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   step_334303();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/step/e2b337.wgsl.expected.glsl b/test/intrinsics/gen/step/e2b337.wgsl.expected.glsl
index d79c9a9..157208e 100644
--- a/test/intrinsics/gen/step/e2b337.wgsl.expected.glsl
+++ b/test/intrinsics/gen/step/e2b337.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec4 res = step(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   step_e2b337();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec4 res = step(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   step_e2b337();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec4 res = step(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   step_e2b337();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/storageBarrier/d87211.wgsl.expected.glsl b/test/intrinsics/gen/storageBarrier/d87211.wgsl.expected.glsl
index 52d6446..31a51a7 100644
--- a/test/intrinsics/gen/storageBarrier/d87211.wgsl.expected.glsl
+++ b/test/intrinsics/gen/storageBarrier/d87211.wgsl.expected.glsl
@@ -5,13 +5,12 @@
   memoryBarrierBuffer();
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   storageBarrier_d87211();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/tan/244e2a.wgsl.expected.glsl b/test/intrinsics/gen/tan/244e2a.wgsl.expected.glsl
index d4c23fb..0884a55 100644
--- a/test/intrinsics/gen/tan/244e2a.wgsl.expected.glsl
+++ b/test/intrinsics/gen/tan/244e2a.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec4 res = tan(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   tan_244e2a();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec4 res = tan(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   tan_244e2a();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec4 res = tan(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   tan_244e2a();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/tan/2f030e.wgsl.expected.glsl b/test/intrinsics/gen/tan/2f030e.wgsl.expected.glsl
index 65b6d14..46246dc 100644
--- a/test/intrinsics/gen/tan/2f030e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/tan/2f030e.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   float res = tan(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   tan_2f030e();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   float res = tan(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   tan_2f030e();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   float res = tan(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   tan_2f030e();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/tan/7ea104.wgsl.expected.glsl b/test/intrinsics/gen/tan/7ea104.wgsl.expected.glsl
index 3725d7b..4180b59 100644
--- a/test/intrinsics/gen/tan/7ea104.wgsl.expected.glsl
+++ b/test/intrinsics/gen/tan/7ea104.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec3 res = tan(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   tan_7ea104();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec3 res = tan(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   tan_7ea104();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec3 res = tan(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   tan_7ea104();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/tan/8ce3e9.wgsl.expected.glsl b/test/intrinsics/gen/tan/8ce3e9.wgsl.expected.glsl
index 4e2ce26..c5fda5d 100644
--- a/test/intrinsics/gen/tan/8ce3e9.wgsl.expected.glsl
+++ b/test/intrinsics/gen/tan/8ce3e9.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec2 res = tan(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   tan_8ce3e9();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec2 res = tan(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   tan_8ce3e9();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec2 res = tan(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   tan_8ce3e9();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/tanh/5663c5.wgsl.expected.glsl b/test/intrinsics/gen/tanh/5663c5.wgsl.expected.glsl
index 75d7d83..827d00c 100644
--- a/test/intrinsics/gen/tanh/5663c5.wgsl.expected.glsl
+++ b/test/intrinsics/gen/tanh/5663c5.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec4 res = tanh(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   tanh_5663c5();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec4 res = tanh(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   tanh_5663c5();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec4 res = tanh(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   tanh_5663c5();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/tanh/5724b3.wgsl.expected.glsl b/test/intrinsics/gen/tanh/5724b3.wgsl.expected.glsl
index cfccd02..81165d1 100644
--- a/test/intrinsics/gen/tanh/5724b3.wgsl.expected.glsl
+++ b/test/intrinsics/gen/tanh/5724b3.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec2 res = tanh(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   tanh_5724b3();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec2 res = tanh(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   tanh_5724b3();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec2 res = tanh(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   tanh_5724b3();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/tanh/9f9fb9.wgsl.expected.glsl b/test/intrinsics/gen/tanh/9f9fb9.wgsl.expected.glsl
index 0f13e27..81e516a 100644
--- a/test/intrinsics/gen/tanh/9f9fb9.wgsl.expected.glsl
+++ b/test/intrinsics/gen/tanh/9f9fb9.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec3 res = tanh(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   tanh_9f9fb9();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec3 res = tanh(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   tanh_9f9fb9();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec3 res = tanh(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   tanh_9f9fb9();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/tanh/c15fdb.wgsl.expected.glsl b/test/intrinsics/gen/tanh/c15fdb.wgsl.expected.glsl
index d750eed..bbc7766 100644
--- a/test/intrinsics/gen/tanh/c15fdb.wgsl.expected.glsl
+++ b/test/intrinsics/gen/tanh/c15fdb.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   float res = tanh(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   tanh_c15fdb();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   float res = tanh(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   tanh_c15fdb();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   float res = tanh(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   tanh_c15fdb();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/002b2a.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/002b2a.wgsl.expected.glsl
index 14f92e4..4918d10 100644
--- a/test/intrinsics/gen/textureDimensions/002b2a.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/002b2a.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_002b2a();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'sampler1D' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   int res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_002b2a();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'sampler1D' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   int res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_002b2a();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'sampler1D' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureDimensions/012b82.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/012b82.wgsl.expected.glsl
index 2c55d06..3080952 100644
--- a/test/intrinsics/gen/textureDimensions/012b82.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/012b82.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = imageSize(arg_0_1).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_012b82();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = imageSize(arg_0_1).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_012b82();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = imageSize(arg_0_1).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_012b82();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/08753d.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/08753d.wgsl.expected.glsl
index 48a35aa..488f062 100644
--- a/test/intrinsics/gen/textureDimensions/08753d.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/08753d.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_08753d();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'iimage1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -49,19 +36,14 @@
   int res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_08753d();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'iimage1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -78,20 +60,15 @@
   int res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_08753d();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'iimage1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
diff --git a/test/intrinsics/gen/textureDimensions/0c4772.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/0c4772.wgsl.expected.glsl
index 7a591c0..e75f30f 100644
--- a/test/intrinsics/gen/textureDimensions/0c4772.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/0c4772.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec3 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_0c4772();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec3 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_0c4772();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec3 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_0c4772();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/0cce40.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/0cce40.wgsl.expected.glsl
index c22bc6f..1a439b8 100644
--- a/test/intrinsics/gen/textureDimensions/0cce40.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/0cce40.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_0cce40();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'iimage1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -49,19 +36,14 @@
   int res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_0cce40();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'iimage1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -78,20 +60,15 @@
   int res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_0cce40();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'iimage1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
diff --git a/test/intrinsics/gen/textureDimensions/0cf2ff.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/0cf2ff.wgsl.expected.glsl
index b469d25..dcc64f6 100644
--- a/test/intrinsics/gen/textureDimensions/0cf2ff.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/0cf2ff.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_0cf2ff();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_0cf2ff();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_0cf2ff();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/0d8b7e.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/0d8b7e.wgsl.expected.glsl
index c9e5480..72fc990 100644
--- a/test/intrinsics/gen/textureDimensions/0d8b7e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/0d8b7e.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = imageSize(arg_0_1).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_0d8b7e();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = imageSize(arg_0_1).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_0d8b7e();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = imageSize(arg_0_1).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_0d8b7e();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/0e32ee.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/0e32ee.wgsl.expected.glsl
index aa2ecfa..1379396 100644
--- a/test/intrinsics/gen/textureDimensions/0e32ee.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/0e32ee.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec3 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_0e32ee();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec3 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_0e32ee();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec3 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_0e32ee();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/0f3c50.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/0f3c50.wgsl.expected.glsl
index 5c0b2c3..c1f2ad3 100644
--- a/test/intrinsics/gen/textureDimensions/0f3c50.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/0f3c50.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = textureSize(arg_0_1, 0).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_0f3c50();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = textureSize(arg_0_1, 0).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_0f3c50();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = textureSize(arg_0_1, 0).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_0f3c50();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/1191a5.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/1191a5.wgsl.expected.glsl
index 4967d80..8c8905e 100644
--- a/test/intrinsics/gen/textureDimensions/1191a5.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/1191a5.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_1191a5();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_1191a5();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_1191a5();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/12c9bb.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/12c9bb.wgsl.expected.glsl
index d650570..d6210f5 100644
--- a/test/intrinsics/gen/textureDimensions/12c9bb.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/12c9bb.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_12c9bb();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_12c9bb();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_12c9bb();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/147998.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/147998.wgsl.expected.glsl
index 4f4b229..0941bf1 100644
--- a/test/intrinsics/gen/textureDimensions/147998.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/147998.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   ivec2 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_147998();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   ivec2 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_147998();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   ivec2 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_147998();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureDimensions/16036c.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/16036c.wgsl.expected.glsl
index 36e6ad4..be1d72b 100644
--- a/test/intrinsics/gen/textureDimensions/16036c.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/16036c.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = imageSize(arg_0_1).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_16036c();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = imageSize(arg_0_1).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_16036c();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = imageSize(arg_0_1).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_16036c();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/1b71f0.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/1b71f0.wgsl.expected.glsl
index 2fd6faa..0f5191c 100644
--- a/test/intrinsics/gen/textureDimensions/1b71f0.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/1b71f0.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec3 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_1b71f0();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec3 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_1b71f0();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec3 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_1b71f0();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/1d6c26.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/1d6c26.wgsl.expected.glsl
index 0da782c..f8c0a84 100644
--- a/test/intrinsics/gen/textureDimensions/1d6c26.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/1d6c26.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = imageSize(arg_0_1).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_1d6c26();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = imageSize(arg_0_1).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_1d6c26();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = imageSize(arg_0_1).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_1d6c26();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/1e9e39.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/1e9e39.wgsl.expected.glsl
index 23f9499..5a31fac 100644
--- a/test/intrinsics/gen/textureDimensions/1e9e39.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/1e9e39.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_1e9e39();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -49,19 +36,14 @@
   int res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_1e9e39();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -78,20 +60,15 @@
   int res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_1e9e39();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
diff --git a/test/intrinsics/gen/textureDimensions/1f20c5.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/1f20c5.wgsl.expected.glsl
index 5017607..eeb52a6 100644
--- a/test/intrinsics/gen/textureDimensions/1f20c5.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/1f20c5.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = textureSize(arg_0_1, 0).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_1f20c5();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = textureSize(arg_0_1, 0).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_1f20c5();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = textureSize(arg_0_1, 0).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_1f20c5();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/214dd4.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/214dd4.wgsl.expected.glsl
index 8f243b6..811a9b6 100644
--- a/test/intrinsics/gen/textureDimensions/214dd4.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/214dd4.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec3 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_214dd4();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec3 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_214dd4();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec3 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_214dd4();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/221f22.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/221f22.wgsl.expected.glsl
index 1042e3c..a162070 100644
--- a/test/intrinsics/gen/textureDimensions/221f22.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/221f22.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_221f22();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'isamplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_221f22();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'isamplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_221f22();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'isamplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureDimensions/267788.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/267788.wgsl.expected.glsl
index c507366..e9b6be0 100644
--- a/test/intrinsics/gen/textureDimensions/267788.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/267788.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = textureSize(arg_0_1, 0).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_267788();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = textureSize(arg_0_1, 0).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_267788();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = textureSize(arg_0_1, 0).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_267788();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/26bdfa.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/26bdfa.wgsl.expected.glsl
index 41a9191..7eeda4f 100644
--- a/test/intrinsics/gen/textureDimensions/26bdfa.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/26bdfa.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec3 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_26bdfa();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec3 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_26bdfa();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec3 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_26bdfa();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/26ef6c.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/26ef6c.wgsl.expected.glsl
index 2af5f61..9203abd 100644
--- a/test/intrinsics/gen/textureDimensions/26ef6c.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/26ef6c.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = imageSize(arg_0_1).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_26ef6c();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = imageSize(arg_0_1).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_26ef6c();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = imageSize(arg_0_1).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_26ef6c();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/2ad087.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/2ad087.wgsl.expected.glsl
index 3022183..1d53576 100644
--- a/test/intrinsics/gen/textureDimensions/2ad087.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/2ad087.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_2ad087();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_2ad087();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_2ad087();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/2efa05.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/2efa05.wgsl.expected.glsl
index d479f5d..304e2ba 100644
--- a/test/intrinsics/gen/textureDimensions/2efa05.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/2efa05.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec3 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_2efa05();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec3 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_2efa05();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec3 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_2efa05();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/2f289f.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/2f289f.wgsl.expected.glsl
index 0e911ec..908e736 100644
--- a/test/intrinsics/gen/textureDimensions/2f289f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/2f289f.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec3 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_2f289f();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec3 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_2f289f();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec3 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_2f289f();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/2fe1cc.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/2fe1cc.wgsl.expected.glsl
index f5a17e6..370e7c7 100644
--- a/test/intrinsics/gen/textureDimensions/2fe1cc.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/2fe1cc.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_2fe1cc();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_2fe1cc();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_2fe1cc();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/318ecc.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/318ecc.wgsl.expected.glsl
index 3398fc9..9a2ce52 100644
--- a/test/intrinsics/gen/textureDimensions/318ecc.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/318ecc.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_318ecc();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'uimage1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -49,19 +36,14 @@
   int res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_318ecc();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'uimage1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -78,20 +60,15 @@
   int res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_318ecc();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'uimage1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
diff --git a/test/intrinsics/gen/textureDimensions/340d06.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/340d06.wgsl.expected.glsl
index fcc1764..660137e 100644
--- a/test/intrinsics/gen/textureDimensions/340d06.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/340d06.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec3 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_340d06();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec3 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_340d06();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec3 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_340d06();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/398e30.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/398e30.wgsl.expected.glsl
index 4a6a6ad..65443cf 100644
--- a/test/intrinsics/gen/textureDimensions/398e30.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/398e30.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = imageSize(arg_0_1).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_398e30();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = imageSize(arg_0_1).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_398e30();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = imageSize(arg_0_1).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_398e30();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/3a94ea.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/3a94ea.wgsl.expected.glsl
index 883af99..45d0c2a 100644
--- a/test/intrinsics/gen/textureDimensions/3a94ea.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/3a94ea.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   ivec2 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_3a94ea();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   ivec2 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_3a94ea();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   ivec2 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_3a94ea();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureDimensions/3aca08.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/3aca08.wgsl.expected.glsl
index 7af209e..2fab51d 100644
--- a/test/intrinsics/gen/textureDimensions/3aca08.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/3aca08.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_3aca08();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -49,19 +36,14 @@
   int res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_3aca08();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -78,20 +60,15 @@
   int res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_3aca08();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
diff --git a/test/intrinsics/gen/textureDimensions/3c5ad8.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/3c5ad8.wgsl.expected.glsl
index e930f20..b8c86ee 100644
--- a/test/intrinsics/gen/textureDimensions/3c5ad8.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/3c5ad8.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_3c5ad8();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_3c5ad8();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_3c5ad8();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/4152a6.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/4152a6.wgsl.expected.glsl
index 7eb9fe1..3ac20e9 100644
--- a/test/intrinsics/gen/textureDimensions/4152a6.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/4152a6.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_4152a6();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'usamplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_4152a6();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'usamplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_4152a6();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'usamplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureDimensions/423f99.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/423f99.wgsl.expected.glsl
index c0c95d2..488c424 100644
--- a/test/intrinsics/gen/textureDimensions/423f99.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/423f99.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_423f99();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'isampler1D' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   int res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_423f99();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'isampler1D' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   int res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_423f99();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'isampler1D' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureDimensions/4267ee.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/4267ee.wgsl.expected.glsl
index 7b34430..7fcb8e4 100644
--- a/test/intrinsics/gen/textureDimensions/4267ee.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/4267ee.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_4267ee();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_4267ee();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_4267ee();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/42d4e6.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/42d4e6.wgsl.expected.glsl
index ff1dc83..57f7a54 100644
--- a/test/intrinsics/gen/textureDimensions/42d4e6.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/42d4e6.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_42d4e6();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -49,19 +36,14 @@
   int res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_42d4e6();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -78,20 +60,15 @@
   int res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_42d4e6();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
diff --git a/test/intrinsics/gen/textureDimensions/48cb89.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/48cb89.wgsl.expected.glsl
index dedc3e5..0c46823 100644
--- a/test/intrinsics/gen/textureDimensions/48cb89.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/48cb89.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_48cb89();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_48cb89();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_48cb89();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/49d274.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/49d274.wgsl.expected.glsl
index b86ec80..2cd86dd 100644
--- a/test/intrinsics/gen/textureDimensions/49d274.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/49d274.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   ivec2 res = imageSize(arg_0_1).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_49d274();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   ivec2 res = imageSize(arg_0_1).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_49d274();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   ivec2 res = imageSize(arg_0_1).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_49d274();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureDimensions/4df9a8.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/4df9a8.wgsl.expected.glsl
index 1b3d08f..62bbc5a 100644
--- a/test/intrinsics/gen/textureDimensions/4df9a8.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/4df9a8.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_4df9a8();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   int res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_4df9a8();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   int res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_4df9a8();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureDimensions/50a9ee.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/50a9ee.wgsl.expected.glsl
index 2dc6825..851d16c 100644
--- a/test/intrinsics/gen/textureDimensions/50a9ee.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/50a9ee.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_50a9ee();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_50a9ee();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_50a9ee();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureDimensions/52045c.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/52045c.wgsl.expected.glsl
index 2322ae5..eab1224 100644
--- a/test/intrinsics/gen/textureDimensions/52045c.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/52045c.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_52045c();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'isampler1D' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   int res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_52045c();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'isampler1D' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   int res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_52045c();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'isampler1D' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureDimensions/55b23e.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/55b23e.wgsl.expected.glsl
index 6edb647..658ce33 100644
--- a/test/intrinsics/gen/textureDimensions/55b23e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/55b23e.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_55b23e();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   int res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_55b23e();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   int res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_55b23e();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureDimensions/579629.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/579629.wgsl.expected.glsl
index bb33254..e36787d 100644
--- a/test/intrinsics/gen/textureDimensions/579629.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/579629.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = textureSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_579629();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = textureSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_579629();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = textureSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_579629();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/57da0b.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/57da0b.wgsl.expected.glsl
index a2a5088..29208af 100644
--- a/test/intrinsics/gen/textureDimensions/57da0b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/57da0b.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_57da0b();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'uimage1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -49,19 +36,14 @@
   int res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_57da0b();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'uimage1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -78,20 +60,15 @@
   int res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_57da0b();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'uimage1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
diff --git a/test/intrinsics/gen/textureDimensions/57e28f.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/57e28f.wgsl.expected.glsl
index 5703d38..14c08b8 100644
--- a/test/intrinsics/gen/textureDimensions/57e28f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/57e28f.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_57e28f();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_57e28f();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_57e28f();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/58a515.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/58a515.wgsl.expected.glsl
index 4705fe6..4938973 100644
--- a/test/intrinsics/gen/textureDimensions/58a515.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/58a515.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = imageSize(arg_0_1).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_58a515();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = imageSize(arg_0_1).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_58a515();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = imageSize(arg_0_1).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_58a515();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/5985f3.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/5985f3.wgsl.expected.glsl
index 0867e70..998221a 100644
--- a/test/intrinsics/gen/textureDimensions/5985f3.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/5985f3.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = imageSize(arg_0_1).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_5985f3();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = imageSize(arg_0_1).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_5985f3();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = imageSize(arg_0_1).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_5985f3();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/5caa5e.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/5caa5e.wgsl.expected.glsl
index aa60bfd1..4c3260a 100644
--- a/test/intrinsics/gen/textureDimensions/5caa5e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/5caa5e.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_5caa5e();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'uimage1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -49,19 +36,14 @@
   int res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_5caa5e();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'uimage1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -78,20 +60,15 @@
   int res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_5caa5e();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'uimage1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
diff --git a/test/intrinsics/gen/textureDimensions/5e295d.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/5e295d.wgsl.expected.glsl
index c837206..f68edd4 100644
--- a/test/intrinsics/gen/textureDimensions/5e295d.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/5e295d.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = imageSize(arg_0_1).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_5e295d();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = imageSize(arg_0_1).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_5e295d();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = imageSize(arg_0_1).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_5e295d();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/60bf54.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/60bf54.wgsl.expected.glsl
index 3487223..ced7196 100644
--- a/test/intrinsics/gen/textureDimensions/60bf54.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/60bf54.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   ivec3 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_60bf54();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   ivec3 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_60bf54();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   ivec3 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_60bf54();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureDimensions/63f3cf.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/63f3cf.wgsl.expected.glsl
index d9953ab..8db8a7b 100644
--- a/test/intrinsics/gen/textureDimensions/63f3cf.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/63f3cf.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   ivec3 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_63f3cf();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   ivec3 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_63f3cf();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   ivec3 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_63f3cf();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureDimensions/68105c.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/68105c.wgsl.expected.glsl
index 83013dd..e2756f4 100644
--- a/test/intrinsics/gen/textureDimensions/68105c.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/68105c.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_68105c();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_68105c();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_68105c();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/686ef2.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/686ef2.wgsl.expected.glsl
index 5fdb83d..37a1df0 100644
--- a/test/intrinsics/gen/textureDimensions/686ef2.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/686ef2.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_686ef2();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_686ef2();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_686ef2();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/6adac6.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/6adac6.wgsl.expected.glsl
index a837f74..3251ad9 100644
--- a/test/intrinsics/gen/textureDimensions/6adac6.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/6adac6.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_6adac6();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'iimage1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -49,19 +36,14 @@
   int res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_6adac6();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'iimage1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -78,20 +60,15 @@
   int res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_6adac6();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'iimage1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
diff --git a/test/intrinsics/gen/textureDimensions/6ec1b4.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/6ec1b4.wgsl.expected.glsl
index d53f89c..59ad4a5 100644
--- a/test/intrinsics/gen/textureDimensions/6ec1b4.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/6ec1b4.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec3 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_6ec1b4();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec3 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_6ec1b4();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec3 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_6ec1b4();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/6f0d79.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/6f0d79.wgsl.expected.glsl
index 9f84fac..56e978c 100644
--- a/test/intrinsics/gen/textureDimensions/6f0d79.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/6f0d79.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = imageSize(arg_0_1).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_6f0d79();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = imageSize(arg_0_1).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_6f0d79();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = imageSize(arg_0_1).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_6f0d79();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/702c53.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/702c53.wgsl.expected.glsl
index dc198d9..50d9fab 100644
--- a/test/intrinsics/gen/textureDimensions/702c53.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/702c53.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_702c53();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_702c53();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_702c53();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/72e5d6.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/72e5d6.wgsl.expected.glsl
index b9d8411..8831c41 100644
--- a/test/intrinsics/gen/textureDimensions/72e5d6.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/72e5d6.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = textureSize(arg_0_1, 0).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_72e5d6();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = textureSize(arg_0_1, 0).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_72e5d6();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = textureSize(arg_0_1, 0).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_72e5d6();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/79df87.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/79df87.wgsl.expected.glsl
index f149da1..b14a095 100644
--- a/test/intrinsics/gen/textureDimensions/79df87.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/79df87.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_79df87();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'usampler1D' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   int res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_79df87();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'usampler1D' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   int res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_79df87();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'usampler1D' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureDimensions/7bf826.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/7bf826.wgsl.expected.glsl
index a66e815..7e1e045 100644
--- a/test/intrinsics/gen/textureDimensions/7bf826.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/7bf826.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = textureSize(arg_0_1, 0).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_7bf826();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = textureSize(arg_0_1, 0).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_7bf826();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = textureSize(arg_0_1, 0).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_7bf826();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/7f5c2e.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/7f5c2e.wgsl.expected.glsl
index 253b2b4..e74df61 100644
--- a/test/intrinsics/gen/textureDimensions/7f5c2e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/7f5c2e.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   ivec2 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_7f5c2e();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   ivec2 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_7f5c2e();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   ivec2 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_7f5c2e();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureDimensions/8028f3.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/8028f3.wgsl.expected.glsl
index f9c21ce..5357001 100644
--- a/test/intrinsics/gen/textureDimensions/8028f3.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/8028f3.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec3 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_8028f3();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec3 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_8028f3();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec3 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_8028f3();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/811679.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/811679.wgsl.expected.glsl
index 6a6bbb3..66721ab 100644
--- a/test/intrinsics/gen/textureDimensions/811679.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/811679.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec3 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_811679();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec3 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_811679();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec3 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_811679();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/820596.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/820596.wgsl.expected.glsl
index 3b765b8..a675697 100644
--- a/test/intrinsics/gen/textureDimensions/820596.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/820596.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   ivec3 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_820596();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   ivec3 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_820596();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   ivec3 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_820596();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureDimensions/83ee5a.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/83ee5a.wgsl.expected.glsl
index 24adf97..630004e 100644
--- a/test/intrinsics/gen/textureDimensions/83ee5a.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/83ee5a.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_83ee5a();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_83ee5a();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_83ee5a();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/85d556.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/85d556.wgsl.expected.glsl
index 38697f6..6082252 100644
--- a/test/intrinsics/gen/textureDimensions/85d556.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/85d556.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = textureSize(arg_0_1, 0).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_85d556();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = textureSize(arg_0_1, 0).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_85d556();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = textureSize(arg_0_1, 0).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_85d556();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/88ad17.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/88ad17.wgsl.expected.glsl
index ddf17b0..69ed057 100644
--- a/test/intrinsics/gen/textureDimensions/88ad17.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/88ad17.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_88ad17();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_88ad17();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_88ad17();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/8aa4c4.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/8aa4c4.wgsl.expected.glsl
index 4094696..537ae82 100644
--- a/test/intrinsics/gen/textureDimensions/8aa4c4.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/8aa4c4.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec3 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_8aa4c4();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec3 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_8aa4c4();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec3 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_8aa4c4();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/8deb5e.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/8deb5e.wgsl.expected.glsl
index 61106bc..c0c0a0d 100644
--- a/test/intrinsics/gen/textureDimensions/8deb5e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/8deb5e.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec3 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_8deb5e();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec3 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_8deb5e();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec3 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_8deb5e();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/8f20bf.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/8f20bf.wgsl.expected.glsl
index 80db1d7..4de19af 100644
--- a/test/intrinsics/gen/textureDimensions/8f20bf.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/8f20bf.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_8f20bf();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_8f20bf();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_8f20bf();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureDimensions/8fca0f.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/8fca0f.wgsl.expected.glsl
index 8b89fb8..a6c88d7 100644
--- a/test/intrinsics/gen/textureDimensions/8fca0f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/8fca0f.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec3 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_8fca0f();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec3 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_8fca0f();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec3 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_8fca0f();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/90340b.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/90340b.wgsl.expected.glsl
index 304f830..8085723 100644
--- a/test/intrinsics/gen/textureDimensions/90340b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/90340b.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_90340b();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_90340b();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_90340b();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureDimensions/9042ab.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/9042ab.wgsl.expected.glsl
index d51bdd0..e081a36 100644
--- a/test/intrinsics/gen/textureDimensions/9042ab.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/9042ab.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   ivec2 res = imageSize(arg_0_1).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_9042ab();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   ivec2 res = imageSize(arg_0_1).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_9042ab();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   ivec2 res = imageSize(arg_0_1).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_9042ab();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureDimensions/9393b0.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/9393b0.wgsl.expected.glsl
index 2641780..e1b42df 100644
--- a/test/intrinsics/gen/textureDimensions/9393b0.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/9393b0.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_9393b0();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_9393b0();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_9393b0();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/939fdb.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/939fdb.wgsl.expected.glsl
index 249f885..b8fd95b 100644
--- a/test/intrinsics/gen/textureDimensions/939fdb.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/939fdb.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_939fdb();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_939fdb();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_939fdb();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/962dcd.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/962dcd.wgsl.expected.glsl
index 0df22f8..c741061 100644
--- a/test/intrinsics/gen/textureDimensions/962dcd.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/962dcd.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_962dcd();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_962dcd();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_962dcd();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/9abfe5.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/9abfe5.wgsl.expected.glsl
index 4466a1d..ec95d84 100644
--- a/test/intrinsics/gen/textureDimensions/9abfe5.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/9abfe5.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = imageSize(arg_0_1).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_9abfe5();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = imageSize(arg_0_1).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_9abfe5();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = imageSize(arg_0_1).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_9abfe5();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/9c9c57.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/9c9c57.wgsl.expected.glsl
index 90cfd47..c7ae9b9 100644
--- a/test/intrinsics/gen/textureDimensions/9c9c57.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/9c9c57.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = textureSize(arg_0_1, 0).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_9c9c57();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = textureSize(arg_0_1, 0).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_9c9c57();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = textureSize(arg_0_1, 0).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_9c9c57();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/9da9e2.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/9da9e2.wgsl.expected.glsl
index 3282b4c..003370a 100644
--- a/test/intrinsics/gen/textureDimensions/9da9e2.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/9da9e2.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_9da9e2();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'iimage1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -49,19 +36,14 @@
   int res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_9da9e2();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'iimage1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -78,20 +60,15 @@
   int res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_9da9e2();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'iimage1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
diff --git a/test/intrinsics/gen/textureDimensions/9eb8d8.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/9eb8d8.wgsl.expected.glsl
index 06452a6..8e51dd9 100644
--- a/test/intrinsics/gen/textureDimensions/9eb8d8.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/9eb8d8.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_9eb8d8();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_9eb8d8();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_9eb8d8();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/9f8e46.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/9f8e46.wgsl.expected.glsl
index 6af3f44..d319fe9 100644
--- a/test/intrinsics/gen/textureDimensions/9f8e46.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/9f8e46.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_9f8e46();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_9f8e46();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_9f8e46();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/a01845.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/a01845.wgsl.expected.glsl
index 87c69a8..2cedd1e 100644
--- a/test/intrinsics/gen/textureDimensions/a01845.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/a01845.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_a01845();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_a01845();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_a01845();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureDimensions/a7d565.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/a7d565.wgsl.expected.glsl
index 664e204..77348b5 100644
--- a/test/intrinsics/gen/textureDimensions/a7d565.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/a7d565.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_a7d565();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'usampler1D' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   int res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_a7d565();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'usampler1D' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   int res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_a7d565();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'usampler1D' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureDimensions/a863f2.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/a863f2.wgsl.expected.glsl
index ff71748..1138a78 100644
--- a/test/intrinsics/gen/textureDimensions/a863f2.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/a863f2.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_a863f2();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -49,19 +36,14 @@
   int res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_a863f2();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -78,20 +60,15 @@
   int res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_a863f2();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
diff --git a/test/intrinsics/gen/textureDimensions/a9c9c1.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/a9c9c1.wgsl.expected.glsl
index 3053742..21da942 100644
--- a/test/intrinsics/gen/textureDimensions/a9c9c1.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/a9c9c1.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_a9c9c1();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_a9c9c1();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_a9c9c1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/b0e16d.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/b0e16d.wgsl.expected.glsl
index ddf7bff..1344198 100644
--- a/test/intrinsics/gen/textureDimensions/b0e16d.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/b0e16d.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_b0e16d();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_b0e16d();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_b0e16d();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/b3c954.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/b3c954.wgsl.expected.glsl
index 27eddda..1de7ad2 100644
--- a/test/intrinsics/gen/textureDimensions/b3c954.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/b3c954.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_b3c954();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_b3c954();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_b3c954();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/b3e407.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/b3e407.wgsl.expected.glsl
index ee7fbb6..a42f12c 100644
--- a/test/intrinsics/gen/textureDimensions/b3e407.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/b3e407.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_b3e407();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'sampler1D' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   int res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_b3e407();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'sampler1D' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   int res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_b3e407();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'sampler1D' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureDimensions/b91240.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/b91240.wgsl.expected.glsl
index 942e900..69de1f7 100644
--- a/test/intrinsics/gen/textureDimensions/b91240.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/b91240.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_b91240();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_b91240();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_b91240();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/ba1481.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/ba1481.wgsl.expected.glsl
index b1a73db..0dc8786 100644
--- a/test/intrinsics/gen/textureDimensions/ba1481.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/ba1481.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_ba1481();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_ba1481();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_ba1481();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/bb3dde.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/bb3dde.wgsl.expected.glsl
index d53a4f0..fc54c29 100644
--- a/test/intrinsics/gen/textureDimensions/bb3dde.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/bb3dde.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec3 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_bb3dde();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec3 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_bb3dde();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec3 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_bb3dde();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/c30e75.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/c30e75.wgsl.expected.glsl
index 43dbd13..06b7e56 100644
--- a/test/intrinsics/gen/textureDimensions/c30e75.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/c30e75.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_c30e75();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_c30e75();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_c30e75();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/c7943d.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/c7943d.wgsl.expected.glsl
index a05daa2..1efc49e 100644
--- a/test/intrinsics/gen/textureDimensions/c7943d.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/c7943d.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_c7943d();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_c7943d();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_c7943d();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/cc968c.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/cc968c.wgsl.expected.glsl
index 66c6718..ec3883d 100644
--- a/test/intrinsics/gen/textureDimensions/cc968c.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/cc968c.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_cc968c();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   int res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_cc968c();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   int res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_cc968c();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureDimensions/cccc8f.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/cccc8f.wgsl.expected.glsl
index 1023423..34a1f00 100644
--- a/test/intrinsics/gen/textureDimensions/cccc8f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/cccc8f.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_cccc8f();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -49,19 +36,14 @@
   int res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_cccc8f();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -78,20 +60,15 @@
   int res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_cccc8f();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
diff --git a/test/intrinsics/gen/textureDimensions/cd76a7.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/cd76a7.wgsl.expected.glsl
index 9946cc2..a0fc366 100644
--- a/test/intrinsics/gen/textureDimensions/cd76a7.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/cd76a7.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec3 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_cd76a7();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec3 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_cd76a7();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec3 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_cd76a7();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/cdf473.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/cdf473.wgsl.expected.glsl
index ad02097..553c607 100644
--- a/test/intrinsics/gen/textureDimensions/cdf473.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/cdf473.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = imageSize(arg_0_1).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_cdf473();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = imageSize(arg_0_1).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_cdf473();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = imageSize(arg_0_1).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_cdf473();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/cec841.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/cec841.wgsl.expected.glsl
index b14fbe8..9887c81 100644
--- a/test/intrinsics/gen/textureDimensions/cec841.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/cec841.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = textureSize(arg_0_1, 0).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_cec841();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = textureSize(arg_0_1, 0).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_cec841();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = textureSize(arg_0_1, 0).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_cec841();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/cf7e43.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/cf7e43.wgsl.expected.glsl
index a41c319..1a2dd27 100644
--- a/test/intrinsics/gen/textureDimensions/cf7e43.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/cf7e43.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec3 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_cf7e43();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec3 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_cf7e43();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec3 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_cf7e43();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/d125bc.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/d125bc.wgsl.expected.glsl
index 9dbf7f4..a7a7c00 100644
--- a/test/intrinsics/gen/textureDimensions/d125bc.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/d125bc.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_d125bc();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_d125bc();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_d125bc();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/d83c45.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/d83c45.wgsl.expected.glsl
index d434b3e..8b5f070 100644
--- a/test/intrinsics/gen/textureDimensions/d83c45.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/d83c45.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_d83c45();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'usamplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_d83c45();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'usamplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_d83c45();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'usamplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureDimensions/daf7c0.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/daf7c0.wgsl.expected.glsl
index 73f127b..ac91dcf 100644
--- a/test/intrinsics/gen/textureDimensions/daf7c0.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/daf7c0.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = textureSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_daf7c0();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = textureSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_daf7c0();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = textureSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_daf7c0();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/dc2dd0.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/dc2dd0.wgsl.expected.glsl
index b1f94d9..303891f 100644
--- a/test/intrinsics/gen/textureDimensions/dc2dd0.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/dc2dd0.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_dc2dd0();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'uimage1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -49,19 +36,14 @@
   int res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_dc2dd0();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'uimage1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -78,20 +60,15 @@
   int res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_dc2dd0();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'uimage1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
diff --git a/test/intrinsics/gen/textureDimensions/e927be.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/e927be.wgsl.expected.glsl
index 74761e1..6a36ed2 100644
--- a/test/intrinsics/gen/textureDimensions/e927be.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/e927be.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_e927be();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'isamplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_e927be();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'isamplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_e927be();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'isamplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureDimensions/e9e96c.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/e9e96c.wgsl.expected.glsl
index cc5eb73..ff80da8 100644
--- a/test/intrinsics/gen/textureDimensions/e9e96c.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/e9e96c.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = imageSize(arg_0_1).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_e9e96c();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = imageSize(arg_0_1).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_e9e96c();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = imageSize(arg_0_1).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_e9e96c();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/ef5b89.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/ef5b89.wgsl.expected.glsl
index e9158de..6081669 100644
--- a/test/intrinsics/gen/textureDimensions/ef5b89.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/ef5b89.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = textureSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_ef5b89();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = textureSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_ef5b89();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = textureSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_ef5b89();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/efc8a4.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/efc8a4.wgsl.expected.glsl
index 89b3428..263b1b4 100644
--- a/test/intrinsics/gen/textureDimensions/efc8a4.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/efc8a4.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec3 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_efc8a4();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec3 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_efc8a4();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec3 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_efc8a4();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/f60bdb.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/f60bdb.wgsl.expected.glsl
index 85626e2..5b44875 100644
--- a/test/intrinsics/gen/textureDimensions/f60bdb.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/f60bdb.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = textureSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_f60bdb();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = textureSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_f60bdb();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = textureSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_f60bdb();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/f7145b.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/f7145b.wgsl.expected.glsl
index f855aee..e64653c 100644
--- a/test/intrinsics/gen/textureDimensions/f7145b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/f7145b.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_f7145b();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_f7145b();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_f7145b();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/f931c7.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/f931c7.wgsl.expected.glsl
index 25889f5..a6c0397 100644
--- a/test/intrinsics/gen/textureDimensions/f931c7.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/f931c7.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_f931c7();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_f931c7();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_f931c7();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/fa9859.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/fa9859.wgsl.expected.glsl
index 853f710..8d8a510b 100644
--- a/test/intrinsics/gen/textureDimensions/fa9859.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/fa9859.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_fa9859();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_fa9859();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec2 res = textureSize(arg_0_1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_fa9859();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureDimensions/fb5670.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/fb5670.wgsl.expected.glsl
index a8498fe..9c6a56b 100644
--- a/test/intrinsics/gen/textureDimensions/fb5670.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/fb5670.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   ivec2 res = imageSize(arg_0_1).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_fb5670();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   ivec2 res = imageSize(arg_0_1).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_fb5670();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   ivec2 res = imageSize(arg_0_1).xy;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_fb5670();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureDimensions/fcac78.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/fcac78.wgsl.expected.glsl
index 56f7a39..69c5a4d 100644
--- a/test/intrinsics/gen/textureDimensions/fcac78.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureDimensions/fcac78.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec3 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureDimensions_fcac78();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec3 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureDimensions_fcac78();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec3 res = imageSize(arg_0_1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureDimensions_fcac78();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureGather/01305f.wgsl.expected.glsl b/test/intrinsics/gen/textureGather/01305f.wgsl.expected.glsl
index 9c485b2..5389a4c 100644
--- a/test/intrinsics/gen/textureGather/01305f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGather/01305f.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   uvec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureGather_01305f();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -41,19 +28,14 @@
   uvec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureGather_01305f();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -63,17 +45,12 @@
   uvec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureGather_01305f();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureGather/06030a.wgsl.expected.glsl b/test/intrinsics/gen/textureGather/06030a.wgsl.expected.glsl
index 6c84a46..21b131e 100644
--- a/test/intrinsics/gen/textureGather/06030a.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGather/06030a.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   vec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), ivec2(0, 0), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureGather_06030a();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -41,19 +28,14 @@
   vec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), ivec2(0, 0), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureGather_06030a();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -63,17 +45,12 @@
   vec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), ivec2(0, 0), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureGather_06030a();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureGather/10c554.wgsl.expected.glsl b/test/intrinsics/gen/textureGather/10c554.wgsl.expected.glsl
index 073e19e..a52c1d4 100644
--- a/test/intrinsics/gen/textureGather/10c554.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGather/10c554.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   vec4 res = textureGather(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureGather_10c554();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -41,19 +28,14 @@
   vec4 res = textureGather(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureGather_10c554();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -63,17 +45,12 @@
   vec4 res = textureGather(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureGather_10c554();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureGather/15d79c.wgsl.expected.glsl b/test/intrinsics/gen/textureGather/15d79c.wgsl.expected.glsl
index dea7b69..6954454 100644
--- a/test/intrinsics/gen/textureGather/15d79c.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGather/15d79c.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   vec4 res = textureGatherOffset(arg_1_arg_2, vec2(0.0f, 0.0f), ivec2(0, 0), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureGather_15d79c();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -41,19 +28,14 @@
   vec4 res = textureGatherOffset(arg_1_arg_2, vec2(0.0f, 0.0f), ivec2(0, 0), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureGather_15d79c();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -63,17 +45,12 @@
   vec4 res = textureGatherOffset(arg_1_arg_2, vec2(0.0f, 0.0f), ivec2(0, 0), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureGather_15d79c();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureGather/2e0ed5.wgsl.expected.glsl b/test/intrinsics/gen/textureGather/2e0ed5.wgsl.expected.glsl
index ed998ff..004593d 100644
--- a/test/intrinsics/gen/textureGather/2e0ed5.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGather/2e0ed5.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   vec4 res = textureGather(arg_0_arg_1, vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureGather_2e0ed5();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -41,19 +28,14 @@
   vec4 res = textureGather(arg_0_arg_1, vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureGather_2e0ed5();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -63,17 +45,12 @@
   vec4 res = textureGather(arg_0_arg_1, vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureGather_2e0ed5();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureGather/3112e8.wgsl.expected.glsl b/test/intrinsics/gen/textureGather/3112e8.wgsl.expected.glsl
index ffbb04b..b9f564e 100644
--- a/test/intrinsics/gen/textureGather/3112e8.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGather/3112e8.wgsl.expected.glsl
@@ -9,31 +9,18 @@
   vec4 res = textureGather(arg_1_arg_2, vec4(0.0f, 0.0f, 0.0f, float(1)), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureGather_3112e8();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -50,19 +37,14 @@
   vec4 res = textureGather(arg_1_arg_2, vec4(0.0f, 0.0f, 0.0f, float(1)), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureGather_3112e8();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -79,20 +61,15 @@
   vec4 res = textureGather(arg_1_arg_2, vec4(0.0f, 0.0f, 0.0f, float(1)), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureGather_3112e8();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureGather/3c527e.wgsl.expected.glsl b/test/intrinsics/gen/textureGather/3c527e.wgsl.expected.glsl
index ea10f93..c909e1c 100644
--- a/test/intrinsics/gen/textureGather/3c527e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGather/3c527e.wgsl.expected.glsl
@@ -9,31 +9,18 @@
   uvec4 res = textureGather(arg_1_arg_2, vec4(0.0f, 0.0f, 0.0f, float(1)), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureGather_3c527e();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'usamplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -50,19 +37,14 @@
   uvec4 res = textureGather(arg_1_arg_2, vec4(0.0f, 0.0f, 0.0f, float(1)), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureGather_3c527e();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'usamplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -79,20 +61,15 @@
   uvec4 res = textureGather(arg_1_arg_2, vec4(0.0f, 0.0f, 0.0f, float(1)), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureGather_3c527e();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'usamplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureGather/43025d.wgsl.expected.glsl b/test/intrinsics/gen/textureGather/43025d.wgsl.expected.glsl
index c770aa5..c29566b 100644
--- a/test/intrinsics/gen/textureGather/43025d.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGather/43025d.wgsl.expected.glsl
@@ -9,31 +9,18 @@
   vec4 res = textureGather(arg_0_arg_1, vec4(0.0f, 0.0f, 0.0f, float(1)));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureGather_43025d();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -50,19 +37,14 @@
   vec4 res = textureGather(arg_0_arg_1, vec4(0.0f, 0.0f, 0.0f, float(1)));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureGather_43025d();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -79,20 +61,15 @@
   vec4 res = textureGather(arg_0_arg_1, vec4(0.0f, 0.0f, 0.0f, float(1)));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureGather_43025d();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureGather/4f2350.wgsl.expected.glsl b/test/intrinsics/gen/textureGather/4f2350.wgsl.expected.glsl
index c5f4ab3..ac23239 100644
--- a/test/intrinsics/gen/textureGather/4f2350.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGather/4f2350.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), ivec2(0, 0), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureGather_4f2350();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -41,19 +28,14 @@
   ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), ivec2(0, 0), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureGather_4f2350();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -63,17 +45,12 @@
   ivec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), ivec2(0, 0), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureGather_4f2350();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureGather/51cf0b.wgsl.expected.glsl b/test/intrinsics/gen/textureGather/51cf0b.wgsl.expected.glsl
index b5cd131..1ff6742 100644
--- a/test/intrinsics/gen/textureGather/51cf0b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGather/51cf0b.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   ivec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureGather_51cf0b();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -41,19 +28,14 @@
   ivec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureGather_51cf0b();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -63,17 +45,12 @@
   ivec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureGather_51cf0b();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureGather/53ece6.wgsl.expected.glsl b/test/intrinsics/gen/textureGather/53ece6.wgsl.expected.glsl
index 2d6eb3a..cfc3c9e 100644
--- a/test/intrinsics/gen/textureGather/53ece6.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGather/53ece6.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   vec4 res = textureGatherOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureGather_53ece6();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -41,19 +28,14 @@
   vec4 res = textureGatherOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureGather_53ece6();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -63,17 +45,12 @@
   vec4 res = textureGatherOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureGather_53ece6();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureGather/57bfc6.wgsl.expected.glsl b/test/intrinsics/gen/textureGather/57bfc6.wgsl.expected.glsl
index 0b79d64..8eb8983 100644
--- a/test/intrinsics/gen/textureGather/57bfc6.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGather/57bfc6.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   vec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, 0.0f), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureGather_57bfc6();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -41,19 +28,14 @@
   vec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, 0.0f), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureGather_57bfc6();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -63,17 +45,12 @@
   vec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, 0.0f), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureGather_57bfc6();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureGather/587ba3.wgsl.expected.glsl b/test/intrinsics/gen/textureGather/587ba3.wgsl.expected.glsl
index 369cafb..ecb1131 100644
--- a/test/intrinsics/gen/textureGather/587ba3.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGather/587ba3.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   ivec4 res = textureGather(arg_1_arg_2, vec2(0.0f, 0.0f), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureGather_587ba3();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -41,19 +28,14 @@
   ivec4 res = textureGather(arg_1_arg_2, vec2(0.0f, 0.0f), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureGather_587ba3();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -63,17 +45,12 @@
   ivec4 res = textureGather(arg_1_arg_2, vec2(0.0f, 0.0f), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureGather_587ba3();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureGather/69e0fb.wgsl.expected.glsl b/test/intrinsics/gen/textureGather/69e0fb.wgsl.expected.glsl
index e862fd5..060919e 100644
--- a/test/intrinsics/gen/textureGather/69e0fb.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGather/69e0fb.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   ivec4 res = textureGatherOffset(arg_1_arg_2, vec2(0.0f, 0.0f), ivec2(0, 0), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureGather_69e0fb();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -41,19 +28,14 @@
   ivec4 res = textureGatherOffset(arg_1_arg_2, vec2(0.0f, 0.0f), ivec2(0, 0), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureGather_69e0fb();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -63,17 +45,12 @@
   ivec4 res = textureGatherOffset(arg_1_arg_2, vec2(0.0f, 0.0f), ivec2(0, 0), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureGather_69e0fb();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureGather/93003d.wgsl.expected.glsl b/test/intrinsics/gen/textureGather/93003d.wgsl.expected.glsl
index 57c6303..bd5c8b6 100644
--- a/test/intrinsics/gen/textureGather/93003d.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGather/93003d.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   uvec4 res = textureGatherOffset(arg_1_arg_2, vec2(0.0f, 0.0f), ivec2(0, 0), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureGather_93003d();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -41,19 +28,14 @@
   uvec4 res = textureGatherOffset(arg_1_arg_2, vec2(0.0f, 0.0f), ivec2(0, 0), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureGather_93003d();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -63,17 +45,12 @@
   uvec4 res = textureGatherOffset(arg_1_arg_2, vec2(0.0f, 0.0f), ivec2(0, 0), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureGather_93003d();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureGather/9a6358.wgsl.expected.glsl b/test/intrinsics/gen/textureGather/9a6358.wgsl.expected.glsl
index e872aa3..c79ce78 100644
--- a/test/intrinsics/gen/textureGather/9a6358.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGather/9a6358.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   vec4 res = textureGather(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureGather_9a6358();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -41,19 +28,14 @@
   vec4 res = textureGather(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureGather_9a6358();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -63,17 +45,12 @@
   vec4 res = textureGather(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureGather_9a6358();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureGather/9efca2.wgsl.expected.glsl b/test/intrinsics/gen/textureGather/9efca2.wgsl.expected.glsl
index 614bd67..49c5e4f 100644
--- a/test/intrinsics/gen/textureGather/9efca2.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGather/9efca2.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   vec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureGather_9efca2();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -41,19 +28,14 @@
   vec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureGather_9efca2();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -63,17 +45,12 @@
   vec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureGather_9efca2();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureGather/bd0b1e.wgsl.expected.glsl b/test/intrinsics/gen/textureGather/bd0b1e.wgsl.expected.glsl
index 97371b6..ecfe863 100644
--- a/test/intrinsics/gen/textureGather/bd0b1e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGather/bd0b1e.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   vec4 res = textureGather(arg_1_arg_2, vec2(0.0f, 0.0f), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureGather_bd0b1e();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -41,19 +28,14 @@
   vec4 res = textureGather(arg_1_arg_2, vec2(0.0f, 0.0f), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureGather_bd0b1e();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -63,17 +45,12 @@
   vec4 res = textureGather(arg_1_arg_2, vec2(0.0f, 0.0f), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureGather_bd0b1e();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureGather/c409ae.wgsl.expected.glsl b/test/intrinsics/gen/textureGather/c409ae.wgsl.expected.glsl
index 1f317e7..4211e7b 100644
--- a/test/intrinsics/gen/textureGather/c409ae.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGather/c409ae.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   vec4 res = textureGatherOffset(arg_0_arg_1, vec2(0.0f, 0.0f), ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureGather_c409ae();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -41,19 +28,14 @@
   vec4 res = textureGatherOffset(arg_0_arg_1, vec2(0.0f, 0.0f), ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureGather_c409ae();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -63,17 +45,12 @@
   vec4 res = textureGatherOffset(arg_0_arg_1, vec2(0.0f, 0.0f), ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureGather_c409ae();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureGather/c55822.wgsl.expected.glsl b/test/intrinsics/gen/textureGather/c55822.wgsl.expected.glsl
index 8ab7901..c376ef6 100644
--- a/test/intrinsics/gen/textureGather/c55822.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGather/c55822.wgsl.expected.glsl
@@ -9,31 +9,18 @@
   ivec4 res = textureGather(arg_1_arg_2, vec4(0.0f, 0.0f, 0.0f, float(1)), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureGather_c55822();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'isamplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -50,19 +37,14 @@
   ivec4 res = textureGather(arg_1_arg_2, vec4(0.0f, 0.0f, 0.0f, float(1)), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureGather_c55822();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'isamplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -79,20 +61,15 @@
   ivec4 res = textureGather(arg_1_arg_2, vec4(0.0f, 0.0f, 0.0f, float(1)), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureGather_c55822();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'isamplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureGather/e1b67d.wgsl.expected.glsl b/test/intrinsics/gen/textureGather/e1b67d.wgsl.expected.glsl
index 0f00339..63bf56c 100644
--- a/test/intrinsics/gen/textureGather/e1b67d.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGather/e1b67d.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   uvec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, 0.0f), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureGather_e1b67d();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -41,19 +28,14 @@
   uvec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, 0.0f), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureGather_e1b67d();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -63,17 +45,12 @@
   uvec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, 0.0f), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureGather_e1b67d();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureGather/e9eff6.wgsl.expected.glsl b/test/intrinsics/gen/textureGather/e9eff6.wgsl.expected.glsl
index 015e775..543a238 100644
--- a/test/intrinsics/gen/textureGather/e9eff6.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGather/e9eff6.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   uvec4 res = textureGather(arg_1_arg_2, vec2(0.0f, 0.0f), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureGather_e9eff6();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -41,19 +28,14 @@
   uvec4 res = textureGather(arg_1_arg_2, vec2(0.0f, 0.0f), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureGather_e9eff6();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -63,17 +45,12 @@
   uvec4 res = textureGather(arg_1_arg_2, vec2(0.0f, 0.0f), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureGather_e9eff6();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureGather/f5f3ba.wgsl.expected.glsl b/test/intrinsics/gen/textureGather/f5f3ba.wgsl.expected.glsl
index e0ab81c..7039398 100644
--- a/test/intrinsics/gen/textureGather/f5f3ba.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGather/f5f3ba.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), ivec2(0, 0), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureGather_f5f3ba();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -41,19 +28,14 @@
   uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), ivec2(0, 0), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureGather_f5f3ba();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -63,17 +45,12 @@
   uvec4 res = textureGatherOffset(arg_1_arg_2, vec3(0.0f, 0.0f, float(1)), ivec2(0, 0), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureGather_f5f3ba();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureGather/f7995a.wgsl.expected.glsl b/test/intrinsics/gen/textureGather/f7995a.wgsl.expected.glsl
index 9d745f2..6d73a72 100644
--- a/test/intrinsics/gen/textureGather/f7995a.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGather/f7995a.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   ivec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, 0.0f), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureGather_f7995a();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -41,19 +28,14 @@
   ivec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, 0.0f), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureGather_f7995a();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -63,17 +45,12 @@
   ivec4 res = textureGather(arg_1_arg_2, vec3(0.0f, 0.0f, 0.0f), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureGather_f7995a();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureGatherCompare/182fd4.wgsl.expected.glsl b/test/intrinsics/gen/textureGatherCompare/182fd4.wgsl.expected.glsl
index c76101c..74cb012 100644
--- a/test/intrinsics/gen/textureGatherCompare/182fd4.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGatherCompare/182fd4.wgsl.expected.glsl
@@ -9,31 +9,18 @@
   vec4 res = textureGather(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureGatherCompare_182fd4();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: 'textureGather' : no matching overloaded function found 
 ERROR: 0:7: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of float'
@@ -51,19 +38,14 @@
   vec4 res = textureGather(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureGatherCompare_182fd4();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: 'textureGather' : no matching overloaded function found 
 ERROR: 0:7: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of float'
@@ -81,20 +63,15 @@
   vec4 res = textureGather(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureGatherCompare_182fd4();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: 'textureGather' : no matching overloaded function found 
 ERROR: 0:7: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of float'
diff --git a/test/intrinsics/gen/textureGatherCompare/60d2d1.wgsl.expected.glsl b/test/intrinsics/gen/textureGatherCompare/60d2d1.wgsl.expected.glsl
index 94a4141..55be136 100644
--- a/test/intrinsics/gen/textureGatherCompare/60d2d1.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGatherCompare/60d2d1.wgsl.expected.glsl
@@ -9,31 +9,18 @@
   vec4 res = textureGather(arg_0_arg_1, vec4(0.0f, 0.0f, 0.0f, float(1)), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureGatherCompare_60d2d1();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -50,19 +37,14 @@
   vec4 res = textureGather(arg_0_arg_1, vec4(0.0f, 0.0f, 0.0f, float(1)), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureGatherCompare_60d2d1();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -79,20 +61,15 @@
   vec4 res = textureGather(arg_0_arg_1, vec4(0.0f, 0.0f, 0.0f, float(1)), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureGatherCompare_60d2d1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureGatherCompare/6d9352.wgsl.expected.glsl b/test/intrinsics/gen/textureGatherCompare/6d9352.wgsl.expected.glsl
index 2694554..8ada980 100644
--- a/test/intrinsics/gen/textureGatherCompare/6d9352.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGatherCompare/6d9352.wgsl.expected.glsl
@@ -9,31 +9,18 @@
   vec4 res = textureGather(arg_0_arg_1, vec2(0.0f, 0.0f), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureGatherCompare_6d9352();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: 'textureGather' : no matching overloaded function found 
 ERROR: 0:7: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of float'
@@ -51,19 +38,14 @@
   vec4 res = textureGather(arg_0_arg_1, vec2(0.0f, 0.0f), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureGatherCompare_6d9352();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: 'textureGather' : no matching overloaded function found 
 ERROR: 0:7: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of float'
@@ -81,20 +63,15 @@
   vec4 res = textureGather(arg_0_arg_1, vec2(0.0f, 0.0f), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureGatherCompare_6d9352();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: 'textureGather' : no matching overloaded function found 
 ERROR: 0:7: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of float'
diff --git a/test/intrinsics/gen/textureGatherCompare/6f1267.wgsl.expected.glsl b/test/intrinsics/gen/textureGatherCompare/6f1267.wgsl.expected.glsl
index df3b334..cfe99da 100644
--- a/test/intrinsics/gen/textureGatherCompare/6f1267.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGatherCompare/6f1267.wgsl.expected.glsl
@@ -9,31 +9,18 @@
   vec4 res = textureGatherOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 1.0f, ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureGatherCompare_6f1267();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: 'textureGatherOffset' : no matching overloaded function found 
 ERROR: 0:7: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of float'
@@ -51,19 +38,14 @@
   vec4 res = textureGatherOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 1.0f, ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureGatherCompare_6f1267();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: 'textureGatherOffset' : no matching overloaded function found 
 ERROR: 0:7: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of float'
@@ -81,20 +63,15 @@
   vec4 res = textureGatherOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 1.0f, ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureGatherCompare_6f1267();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: 'textureGatherOffset' : no matching overloaded function found 
 ERROR: 0:7: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of float'
diff --git a/test/intrinsics/gen/textureGatherCompare/783e65.wgsl.expected.glsl b/test/intrinsics/gen/textureGatherCompare/783e65.wgsl.expected.glsl
index 904a0a5..02015bd 100644
--- a/test/intrinsics/gen/textureGatherCompare/783e65.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGatherCompare/783e65.wgsl.expected.glsl
@@ -9,31 +9,18 @@
   vec4 res = textureGather(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureGatherCompare_783e65();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: 'textureGather' : no matching overloaded function found 
 ERROR: 0:7: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of float'
@@ -51,19 +38,14 @@
   vec4 res = textureGather(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureGatherCompare_783e65();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: 'textureGather' : no matching overloaded function found 
 ERROR: 0:7: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of float'
@@ -81,20 +63,15 @@
   vec4 res = textureGather(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureGatherCompare_783e65();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: 'textureGather' : no matching overloaded function found 
 ERROR: 0:7: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of float'
diff --git a/test/intrinsics/gen/textureGatherCompare/a5f587.wgsl.expected.glsl b/test/intrinsics/gen/textureGatherCompare/a5f587.wgsl.expected.glsl
index 0c1fcc2..bec1404 100644
--- a/test/intrinsics/gen/textureGatherCompare/a5f587.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureGatherCompare/a5f587.wgsl.expected.glsl
@@ -9,31 +9,18 @@
   vec4 res = textureGatherOffset(arg_0_arg_1, vec2(0.0f, 0.0f), 1.0f, ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureGatherCompare_a5f587();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: 'textureGatherOffset' : no matching overloaded function found 
 ERROR: 0:7: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of float'
@@ -51,19 +38,14 @@
   vec4 res = textureGatherOffset(arg_0_arg_1, vec2(0.0f, 0.0f), 1.0f, ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureGatherCompare_a5f587();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: 'textureGatherOffset' : no matching overloaded function found 
 ERROR: 0:7: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of float'
@@ -81,20 +63,15 @@
   vec4 res = textureGatherOffset(arg_0_arg_1, vec2(0.0f, 0.0f), 1.0f, ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureGatherCompare_a5f587();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: 'textureGatherOffset' : no matching overloaded function found 
 ERROR: 0:7: '=' :  cannot convert from ' const float' to ' temp mediump 4-component vector of float'
diff --git a/test/intrinsics/gen/textureLoad/19cf87.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/19cf87.wgsl.expected.glsl
index 5412f67..8e1ff9d 100644
--- a/test/intrinsics/gen/textureLoad/19cf87.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureLoad/19cf87.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   float res = texelFetch(arg_0_1, ivec2(0, 0), 0).x;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureLoad_19cf87();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   float res = texelFetch(arg_0_1, ivec2(0, 0), 0).x;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureLoad_19cf87();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   float res = texelFetch(arg_0_1, ivec2(0, 0), 0).x;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureLoad_19cf87();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureLoad/1b8588.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/1b8588.wgsl.expected.glsl
index fb511ee..d4c7cc9 100644
--- a/test/intrinsics/gen/textureLoad/1b8588.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureLoad/1b8588.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   uvec4 res = texelFetch(arg_0_1, 1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureLoad_1b8588();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'usampler1D' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   uvec4 res = texelFetch(arg_0_1, 1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureLoad_1b8588();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'usampler1D' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   uvec4 res = texelFetch(arg_0_1, 1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureLoad_1b8588();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'usampler1D' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureLoad/1f2016.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/1f2016.wgsl.expected.glsl
index 73e9fa2..6defceb 100644
--- a/test/intrinsics/gen/textureLoad/1f2016.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureLoad/1f2016.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   vec4 res = texelFetch(arg_0_1, ivec3(0, 0, 0), 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureLoad_1f2016();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   vec4 res = texelFetch(arg_0_1, ivec3(0, 0, 0), 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureLoad_1f2016();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   vec4 res = texelFetch(arg_0_1, ivec3(0, 0, 0), 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureLoad_1f2016();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureLoad/484344.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/484344.wgsl.expected.glsl
index 9682ec0..f0ecc81 100644
--- a/test/intrinsics/gen/textureLoad/484344.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureLoad/484344.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   vec4 res = texelFetch(arg_0_1, ivec2(0, 0), 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureLoad_484344();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   vec4 res = texelFetch(arg_0_1, ivec2(0, 0), 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureLoad_484344();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   vec4 res = texelFetch(arg_0_1, ivec2(0, 0), 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureLoad_484344();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureLoad/4fd803.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/4fd803.wgsl.expected.glsl
index 5dd74b9..dac7902 100644
--- a/test/intrinsics/gen/textureLoad/4fd803.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureLoad/4fd803.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec4 res = texelFetch(arg_0_1, ivec3(0, 0, 0), 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureLoad_4fd803();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec4 res = texelFetch(arg_0_1, ivec3(0, 0, 0), 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureLoad_4fd803();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec4 res = texelFetch(arg_0_1, ivec3(0, 0, 0), 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureLoad_4fd803();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureLoad/5a2f9d.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/5a2f9d.wgsl.expected.glsl
index e3c138f..753b79b 100644
--- a/test/intrinsics/gen/textureLoad/5a2f9d.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureLoad/5a2f9d.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   ivec4 res = texelFetch(arg_0_1, 1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureLoad_5a2f9d();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'isampler1D' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   ivec4 res = texelFetch(arg_0_1, 1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureLoad_5a2f9d();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'isampler1D' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   ivec4 res = texelFetch(arg_0_1, 1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureLoad_5a2f9d();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'isampler1D' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureLoad/6154d4.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/6154d4.wgsl.expected.glsl
index 3470f27..8e43537 100644
--- a/test/intrinsics/gen/textureLoad/6154d4.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureLoad/6154d4.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   uvec4 res = texelFetch(arg_0_1, ivec2(0, 0), 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureLoad_6154d4();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   uvec4 res = texelFetch(arg_0_1, ivec2(0, 0), 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureLoad_6154d4();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   uvec4 res = texelFetch(arg_0_1, ivec2(0, 0), 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureLoad_6154d4();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureLoad/6273b1.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/6273b1.wgsl.expected.glsl
index 527ff52..7416ba2 100644
--- a/test/intrinsics/gen/textureLoad/6273b1.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureLoad/6273b1.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   float res = texelFetch(arg_0_1, ivec2(0, 0), 1).x;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureLoad_6273b1();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   float res = texelFetch(arg_0_1, ivec2(0, 0), 1).x;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureLoad_6273b1();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   float res = texelFetch(arg_0_1, ivec2(0, 0), 1).x;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureLoad_6273b1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureLoad/79e697.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/79e697.wgsl.expected.glsl
index 35d4409..9c762cc 100644
--- a/test/intrinsics/gen/textureLoad/79e697.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureLoad/79e697.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec4 res = texelFetch(arg_0_1, ivec3(0, 0, 1), 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureLoad_79e697();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec4 res = texelFetch(arg_0_1, ivec3(0, 0, 1), 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureLoad_79e697();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec4 res = texelFetch(arg_0_1, ivec3(0, 0, 1), 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureLoad_79e697();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureLoad/7c90e5.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/7c90e5.wgsl.expected.glsl
index 87cab79..9689042 100644
--- a/test/intrinsics/gen/textureLoad/7c90e5.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureLoad/7c90e5.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   uvec4 res = texelFetch(arg_0_1, ivec3(0, 0, 1), 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureLoad_7c90e5();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   uvec4 res = texelFetch(arg_0_1, ivec3(0, 0, 1), 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureLoad_7c90e5();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   uvec4 res = texelFetch(arg_0_1, ivec3(0, 0, 1), 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureLoad_7c90e5();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureLoad/81c381.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/81c381.wgsl.expected.glsl
index 0ae7c91..fc474bd 100644
--- a/test/intrinsics/gen/textureLoad/81c381.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureLoad/81c381.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   vec4 res = texelFetch(arg_0_1, 1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureLoad_81c381();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'sampler1D' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   vec4 res = texelFetch(arg_0_1, 1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureLoad_81c381();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'sampler1D' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   vec4 res = texelFetch(arg_0_1, 1, 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureLoad_81c381();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'sampler1D' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureLoad/87be85.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/87be85.wgsl.expected.glsl
index 6240bc6..16aca94 100644
--- a/test/intrinsics/gen/textureLoad/87be85.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureLoad/87be85.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   vec4 res = texelFetch(arg_0_1, ivec3(0, 0, 1), 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureLoad_87be85();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   vec4 res = texelFetch(arg_0_1, ivec3(0, 0, 1), 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureLoad_87be85();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   vec4 res = texelFetch(arg_0_1, ivec3(0, 0, 1), 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureLoad_87be85();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureLoad/8acf41.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/8acf41.wgsl.expected.glsl
index fc14c7a..98bc6a3 100644
--- a/test/intrinsics/gen/textureLoad/8acf41.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureLoad/8acf41.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   vec4 res = texelFetch(arg_0_1, ivec2(0, 0), 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureLoad_8acf41();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   vec4 res = texelFetch(arg_0_1, ivec2(0, 0), 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureLoad_8acf41();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   vec4 res = texelFetch(arg_0_1, ivec2(0, 0), 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureLoad_8acf41();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureLoad/9b2667.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/9b2667.wgsl.expected.glsl
index 78ec7ba..74b106d 100644
--- a/test/intrinsics/gen/textureLoad/9b2667.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureLoad/9b2667.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   float res = texelFetch(arg_0_1, ivec3(0, 0, 1), 0).x;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureLoad_9b2667();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   float res = texelFetch(arg_0_1, ivec3(0, 0, 1), 0).x;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureLoad_9b2667();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   float res = texelFetch(arg_0_1, ivec3(0, 0, 1), 0).x;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureLoad_9b2667();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureLoad/a583c9.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/a583c9.wgsl.expected.glsl
index bc1f029..d328ec0 100644
--- a/test/intrinsics/gen/textureLoad/a583c9.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureLoad/a583c9.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   vec4 res = texelFetch(arg_0_1, ivec2(0, 0), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureLoad_a583c9();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   vec4 res = texelFetch(arg_0_1, ivec2(0, 0), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureLoad_a583c9();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   vec4 res = texelFetch(arg_0_1, ivec2(0, 0), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureLoad_a583c9();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureLoad/a9a9f5.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/a9a9f5.wgsl.expected.glsl
index 40ac768..37197ae 100644
--- a/test/intrinsics/gen/textureLoad/a9a9f5.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureLoad/a9a9f5.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   uvec4 res = texelFetch(arg_0_1, ivec3(0, 0, 0), 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureLoad_a9a9f5();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   uvec4 res = texelFetch(arg_0_1, ivec3(0, 0, 0), 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureLoad_a9a9f5();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   uvec4 res = texelFetch(arg_0_1, ivec3(0, 0, 0), 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureLoad_a9a9f5();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureLoad/c2a480.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/c2a480.wgsl.expected.glsl
index 2425099..a60ce49 100644
--- a/test/intrinsics/gen/textureLoad/c2a480.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureLoad/c2a480.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec4 res = texelFetch(arg_0_1, ivec2(0, 0), 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureLoad_c2a480();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec4 res = texelFetch(arg_0_1, ivec2(0, 0), 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureLoad_c2a480();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec4 res = texelFetch(arg_0_1, ivec2(0, 0), 0);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureLoad_c2a480();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureLoad/c378ee.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/c378ee.wgsl.expected.glsl
index a5fbbe2..384dc44 100644
--- a/test/intrinsics/gen/textureLoad/c378ee.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureLoad/c378ee.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   uvec4 res = texelFetch(arg_0_1, ivec2(0, 0), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureLoad_c378ee();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   uvec4 res = texelFetch(arg_0_1, ivec2(0, 0), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureLoad_c378ee();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   uvec4 res = texelFetch(arg_0_1, ivec2(0, 0), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureLoad_c378ee();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureLoad/e3d2cc.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/e3d2cc.wgsl.expected.glsl
index 9aafc24..898cd99 100644
--- a/test/intrinsics/gen/textureLoad/e3d2cc.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureLoad/e3d2cc.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   ivec4 res = texelFetch(arg_0_1, ivec2(0, 0), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureLoad_e3d2cc();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   ivec4 res = texelFetch(arg_0_1, ivec2(0, 0), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureLoad_e3d2cc();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   ivec4 res = texelFetch(arg_0_1, ivec2(0, 0), 1);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureLoad_e3d2cc();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureNumLayers/024820.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/024820.wgsl.expected.glsl
index f67b0d8..f8331b3 100644
--- a/test/intrinsics/gen/textureNumLayers/024820.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLayers/024820.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureNumLayers_024820();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
@@ -49,19 +36,14 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureNumLayers_024820();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp mediump int'
@@ -78,20 +60,15 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureNumLayers_024820();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
diff --git a/test/intrinsics/gen/textureNumLayers/053df7.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/053df7.wgsl.expected.glsl
index 1433d32..f3f2b38 100644
--- a/test/intrinsics/gen/textureNumLayers/053df7.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLayers/053df7.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureNumLayers_053df7();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'usamplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureNumLayers_053df7();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'usamplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureNumLayers_053df7();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'usamplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureNumLayers/058cc3.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/058cc3.wgsl.expected.glsl
index 8120d25..44e5060 100644
--- a/test/intrinsics/gen/textureNumLayers/058cc3.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLayers/058cc3.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureNumLayers_058cc3();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureNumLayers_058cc3();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureNumLayers_058cc3();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureNumLayers/09d05d.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/09d05d.wgsl.expected.glsl
index 85d6768..c82eb8e 100644
--- a/test/intrinsics/gen/textureNumLayers/09d05d.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLayers/09d05d.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureNumLayers_09d05d();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
@@ -49,19 +36,14 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureNumLayers_09d05d();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp mediump int'
@@ -78,20 +60,15 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureNumLayers_09d05d();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
diff --git a/test/intrinsics/gen/textureNumLayers/13b4ce.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/13b4ce.wgsl.expected.glsl
index 0c9751a..21522e6 100644
--- a/test/intrinsics/gen/textureNumLayers/13b4ce.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLayers/13b4ce.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureNumLayers_13b4ce();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
@@ -49,19 +36,14 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureNumLayers_13b4ce();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp mediump int'
@@ -78,20 +60,15 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureNumLayers_13b4ce();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
diff --git a/test/intrinsics/gen/textureNumLayers/22e53b.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/22e53b.wgsl.expected.glsl
index 71288c5..fb99cff 100644
--- a/test/intrinsics/gen/textureNumLayers/22e53b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLayers/22e53b.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureNumLayers_22e53b();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
@@ -49,19 +36,14 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureNumLayers_22e53b();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp mediump int'
@@ -78,20 +60,15 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureNumLayers_22e53b();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
diff --git a/test/intrinsics/gen/textureNumLayers/562013.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/562013.wgsl.expected.glsl
index edd3653..22c897b 100644
--- a/test/intrinsics/gen/textureNumLayers/562013.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLayers/562013.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureNumLayers_562013();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
@@ -49,19 +36,14 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureNumLayers_562013();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp mediump int'
@@ -78,20 +60,15 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureNumLayers_562013();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
diff --git a/test/intrinsics/gen/textureNumLayers/5d59cd.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/5d59cd.wgsl.expected.glsl
index 6cb0d2d..ff2a74e 100644
--- a/test/intrinsics/gen/textureNumLayers/5d59cd.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLayers/5d59cd.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureNumLayers_5d59cd();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureNumLayers_5d59cd();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureNumLayers_5d59cd();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureNumLayers/68a65b.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/68a65b.wgsl.expected.glsl
index 2c22d99..b069934 100644
--- a/test/intrinsics/gen/textureNumLayers/68a65b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLayers/68a65b.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureNumLayers_68a65b();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
@@ -49,19 +36,14 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureNumLayers_68a65b();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp mediump int'
@@ -78,20 +60,15 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureNumLayers_68a65b();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
diff --git a/test/intrinsics/gen/textureNumLayers/778bd1.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/778bd1.wgsl.expected.glsl
index 2dc89f1..87da8dc 100644
--- a/test/intrinsics/gen/textureNumLayers/778bd1.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLayers/778bd1.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureNumLayers_778bd1();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureNumLayers_778bd1();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureNumLayers_778bd1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureNumLayers/7f1937.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/7f1937.wgsl.expected.glsl
index 7951783..cf2a757 100644
--- a/test/intrinsics/gen/textureNumLayers/7f1937.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLayers/7f1937.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureNumLayers_7f1937();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureNumLayers_7f1937();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureNumLayers_7f1937();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureNumLayers/85f980.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/85f980.wgsl.expected.glsl
index 00b6c8d..a96bc51 100644
--- a/test/intrinsics/gen/textureNumLayers/85f980.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLayers/85f980.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureNumLayers_85f980();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'isamplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureNumLayers_85f980();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'isamplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureNumLayers_85f980();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'isamplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureNumLayers/87953e.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/87953e.wgsl.expected.glsl
index 835800a..1575baa 100644
--- a/test/intrinsics/gen/textureNumLayers/87953e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLayers/87953e.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureNumLayers_87953e();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
@@ -49,19 +36,14 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureNumLayers_87953e();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp mediump int'
@@ -78,20 +60,15 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureNumLayers_87953e();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
diff --git a/test/intrinsics/gen/textureNumLayers/893e7c.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/893e7c.wgsl.expected.glsl
index 9fa11ee..b9f782c 100644
--- a/test/intrinsics/gen/textureNumLayers/893e7c.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLayers/893e7c.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureNumLayers_893e7c();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
@@ -49,19 +36,14 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureNumLayers_893e7c();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp mediump int'
@@ -78,20 +60,15 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureNumLayers_893e7c();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
diff --git a/test/intrinsics/gen/textureNumLayers/9700fb.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/9700fb.wgsl.expected.glsl
index ae57eb4..9999bb4 100644
--- a/test/intrinsics/gen/textureNumLayers/9700fb.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLayers/9700fb.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureNumLayers_9700fb();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
@@ -49,19 +36,14 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureNumLayers_9700fb();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp mediump int'
@@ -78,20 +60,15 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureNumLayers_9700fb();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
diff --git a/test/intrinsics/gen/textureNumLayers/a216d2.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/a216d2.wgsl.expected.glsl
index 875fca0..ed0195d 100644
--- a/test/intrinsics/gen/textureNumLayers/a216d2.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLayers/a216d2.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureNumLayers_a216d2();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
@@ -49,19 +36,14 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureNumLayers_a216d2();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp mediump int'
@@ -78,20 +60,15 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureNumLayers_a216d2();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
diff --git a/test/intrinsics/gen/textureNumLayers/cd5dc8.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/cd5dc8.wgsl.expected.glsl
index 451e755..d936e96 100644
--- a/test/intrinsics/gen/textureNumLayers/cd5dc8.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLayers/cd5dc8.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureNumLayers_cd5dc8();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
@@ -49,19 +36,14 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureNumLayers_cd5dc8();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp mediump int'
@@ -78,20 +60,15 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureNumLayers_cd5dc8();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
diff --git a/test/intrinsics/gen/textureNumLayers/d5b228.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/d5b228.wgsl.expected.glsl
index ab739fc..2e32417 100644
--- a/test/intrinsics/gen/textureNumLayers/d5b228.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLayers/d5b228.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureNumLayers_d5b228();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
@@ -49,19 +36,14 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureNumLayers_d5b228();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp mediump int'
@@ -78,20 +60,15 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureNumLayers_d5b228();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
diff --git a/test/intrinsics/gen/textureNumLayers/e31be1.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/e31be1.wgsl.expected.glsl
index 2b8859d..6b42f0e 100644
--- a/test/intrinsics/gen/textureNumLayers/e31be1.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLayers/e31be1.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureNumLayers_e31be1();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
@@ -49,19 +36,14 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureNumLayers_e31be1();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp mediump int'
@@ -78,20 +60,15 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureNumLayers_e31be1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
diff --git a/test/intrinsics/gen/textureNumLayers/e653c0.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/e653c0.wgsl.expected.glsl
index 007b6ac..a50d766 100644
--- a/test/intrinsics/gen/textureNumLayers/e653c0.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLayers/e653c0.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureNumLayers_e653c0();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
@@ -49,19 +36,14 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureNumLayers_e653c0();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp mediump int'
@@ -78,20 +60,15 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureNumLayers_e653c0();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
diff --git a/test/intrinsics/gen/textureNumLayers/ee942f.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/ee942f.wgsl.expected.glsl
index ab9eb50..bdf37c8 100644
--- a/test/intrinsics/gen/textureNumLayers/ee942f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLayers/ee942f.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureNumLayers_ee942f();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
@@ -49,19 +36,14 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureNumLayers_ee942f();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp mediump int'
@@ -78,20 +60,15 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureNumLayers_ee942f();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
diff --git a/test/intrinsics/gen/textureNumLayers/f33005.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/f33005.wgsl.expected.glsl
index 3a29646..556b4ed 100644
--- a/test/intrinsics/gen/textureNumLayers/f33005.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLayers/f33005.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureNumLayers_f33005();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
@@ -49,19 +36,14 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureNumLayers_f33005();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp mediump int'
@@ -78,20 +60,15 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureNumLayers_f33005();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
diff --git a/test/intrinsics/gen/textureNumLayers/fcec98.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/fcec98.wgsl.expected.glsl
index 60679ad..6eae147 100644
--- a/test/intrinsics/gen/textureNumLayers/fcec98.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLayers/fcec98.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureNumLayers_fcec98();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureNumLayers_fcec98();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureNumLayers_fcec98();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureNumLayers/ff5e89.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/ff5e89.wgsl.expected.glsl
index f662bf5..46a346c 100644
--- a/test/intrinsics/gen/textureNumLayers/ff5e89.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLayers/ff5e89.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureNumLayers_ff5e89();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
@@ -49,19 +36,14 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureNumLayers_ff5e89();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp mediump int'
@@ -78,20 +60,15 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureNumLayers_ff5e89();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
diff --git a/test/intrinsics/gen/textureNumLevels/076cb5.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/076cb5.wgsl.expected.glsl
index 8af1de3..8277c6d 100644
--- a/test/intrinsics/gen/textureNumLevels/076cb5.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLevels/076cb5.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureNumLevels_076cb5();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
@@ -49,19 +36,14 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureNumLevels_076cb5();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp mediump int'
@@ -78,20 +60,15 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureNumLevels_076cb5();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
diff --git a/test/intrinsics/gen/textureNumLevels/080d95.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/080d95.wgsl.expected.glsl
index f5ea75b..96eaa13 100644
--- a/test/intrinsics/gen/textureNumLevels/080d95.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLevels/080d95.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureNumLevels_080d95();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
@@ -49,19 +36,14 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureNumLevels_080d95();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp mediump int'
@@ -78,20 +60,15 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureNumLevels_080d95();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
diff --git a/test/intrinsics/gen/textureNumLevels/09ddd0.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/09ddd0.wgsl.expected.glsl
index f014bea..17125a0 100644
--- a/test/intrinsics/gen/textureNumLevels/09ddd0.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLevels/09ddd0.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureNumLevels_09ddd0();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
@@ -49,19 +36,14 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureNumLevels_09ddd0();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp mediump int'
@@ -78,20 +60,15 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureNumLevels_09ddd0();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
diff --git a/test/intrinsics/gen/textureNumLevels/105988.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/105988.wgsl.expected.glsl
index b88b1be..42ddf8c 100644
--- a/test/intrinsics/gen/textureNumLevels/105988.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLevels/105988.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureNumLevels_105988();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
@@ -49,19 +36,14 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureNumLevels_105988();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp mediump int'
@@ -78,20 +60,15 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureNumLevels_105988();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
diff --git a/test/intrinsics/gen/textureNumLevels/1e6f3b.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/1e6f3b.wgsl.expected.glsl
index 7c231ca..91180d5 100644
--- a/test/intrinsics/gen/textureNumLevels/1e6f3b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLevels/1e6f3b.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureNumLevels_1e6f3b();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'usampler1D' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureNumLevels_1e6f3b();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'usampler1D' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureNumLevels_1e6f3b();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'usampler1D' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureNumLevels/23f750.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/23f750.wgsl.expected.glsl
index 8c20d6e..f3c86f5 100644
--- a/test/intrinsics/gen/textureNumLevels/23f750.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLevels/23f750.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureNumLevels_23f750();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
@@ -49,19 +36,14 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureNumLevels_23f750();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp mediump int'
@@ -78,20 +60,15 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureNumLevels_23f750();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
diff --git a/test/intrinsics/gen/textureNumLevels/2c3575.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/2c3575.wgsl.expected.glsl
index b1131a0..6194cd1 100644
--- a/test/intrinsics/gen/textureNumLevels/2c3575.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLevels/2c3575.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureNumLevels_2c3575();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureNumLevels_2c3575();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureNumLevels_2c3575();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureNumLevels/32a0ae.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/32a0ae.wgsl.expected.glsl
index ddc4063..b09220a 100644
--- a/test/intrinsics/gen/textureNumLevels/32a0ae.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLevels/32a0ae.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureNumLevels_32a0ae();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'isampler1D' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureNumLevels_32a0ae();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'isampler1D' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureNumLevels_32a0ae();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'isampler1D' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureNumLevels/5101cf.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/5101cf.wgsl.expected.glsl
index fcc74f7..238271d 100644
--- a/test/intrinsics/gen/textureNumLevels/5101cf.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLevels/5101cf.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureNumLevels_5101cf();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
@@ -49,19 +36,14 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureNumLevels_5101cf();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp mediump int'
@@ -78,20 +60,15 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureNumLevels_5101cf();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
diff --git a/test/intrinsics/gen/textureNumLevels/51b5bb.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/51b5bb.wgsl.expected.glsl
index 11b5d55..77fc6a5 100644
--- a/test/intrinsics/gen/textureNumLevels/51b5bb.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLevels/51b5bb.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureNumLevels_51b5bb();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'sampler1D' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureNumLevels_51b5bb();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'sampler1D' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureNumLevels_51b5bb();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'sampler1D' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureNumLevels/897aaf.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/897aaf.wgsl.expected.glsl
index ace3b6d..f7d9e09 100644
--- a/test/intrinsics/gen/textureNumLevels/897aaf.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLevels/897aaf.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureNumLevels_897aaf();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
@@ -49,19 +36,14 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureNumLevels_897aaf();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp mediump int'
@@ -78,20 +60,15 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureNumLevels_897aaf();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
diff --git a/test/intrinsics/gen/textureNumLevels/9da7a5.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/9da7a5.wgsl.expected.glsl
index 8fcea69..9489c31 100644
--- a/test/intrinsics/gen/textureNumLevels/9da7a5.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLevels/9da7a5.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureNumLevels_9da7a5();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
@@ -49,19 +36,14 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureNumLevels_9da7a5();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp mediump int'
@@ -78,20 +60,15 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureNumLevels_9da7a5();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
diff --git a/test/intrinsics/gen/textureNumLevels/a91c03.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/a91c03.wgsl.expected.glsl
index 8c92d9a..90a7081 100644
--- a/test/intrinsics/gen/textureNumLevels/a91c03.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLevels/a91c03.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureNumLevels_a91c03();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'isamplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureNumLevels_a91c03();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'isamplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureNumLevels_a91c03();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'isamplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureNumLevels/aee7c8.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/aee7c8.wgsl.expected.glsl
index 00c6865..a366ac0 100644
--- a/test/intrinsics/gen/textureNumLevels/aee7c8.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLevels/aee7c8.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureNumLevels_aee7c8();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureNumLevels_aee7c8();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureNumLevels_aee7c8();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureNumLevels/b1b12b.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/b1b12b.wgsl.expected.glsl
index 9516878..cc6f345 100644
--- a/test/intrinsics/gen/textureNumLevels/b1b12b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLevels/b1b12b.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureNumLevels_b1b12b();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
@@ -49,19 +36,14 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureNumLevels_b1b12b();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp mediump int'
@@ -78,20 +60,15 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureNumLevels_b1b12b();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
diff --git a/test/intrinsics/gen/textureNumLevels/b4f5ea.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/b4f5ea.wgsl.expected.glsl
index d103725..78da5ea 100644
--- a/test/intrinsics/gen/textureNumLevels/b4f5ea.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLevels/b4f5ea.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureNumLevels_b4f5ea();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
@@ -49,19 +36,14 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureNumLevels_b4f5ea();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp mediump int'
@@ -78,20 +60,15 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureNumLevels_b4f5ea();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
diff --git a/test/intrinsics/gen/textureNumLevels/d004a9.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/d004a9.wgsl.expected.glsl
index aa22cc7..929a3df 100644
--- a/test/intrinsics/gen/textureNumLevels/d004a9.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLevels/d004a9.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureNumLevels_d004a9();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
@@ -49,19 +36,14 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureNumLevels_d004a9();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp mediump int'
@@ -78,20 +60,15 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureNumLevels_d004a9();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
diff --git a/test/intrinsics/gen/textureNumLevels/dca09e.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/dca09e.wgsl.expected.glsl
index 565b95f..cb28270 100644
--- a/test/intrinsics/gen/textureNumLevels/dca09e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLevels/dca09e.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureNumLevels_dca09e();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
@@ -49,19 +36,14 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureNumLevels_dca09e();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp mediump int'
@@ -78,20 +60,15 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureNumLevels_dca09e();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
diff --git a/test/intrinsics/gen/textureNumLevels/e67231.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/e67231.wgsl.expected.glsl
index c955cb2..b2827d2 100644
--- a/test/intrinsics/gen/textureNumLevels/e67231.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLevels/e67231.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureNumLevels_e67231();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
@@ -49,19 +36,14 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureNumLevels_e67231();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp mediump int'
@@ -78,20 +60,15 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureNumLevels_e67231();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
diff --git a/test/intrinsics/gen/textureNumLevels/ed078b.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/ed078b.wgsl.expected.glsl
index 77747c5..2ff2192 100644
--- a/test/intrinsics/gen/textureNumLevels/ed078b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLevels/ed078b.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureNumLevels_ed078b();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
@@ -49,19 +36,14 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureNumLevels_ed078b();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp mediump int'
@@ -78,20 +60,15 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureNumLevels_ed078b();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
diff --git a/test/intrinsics/gen/textureNumLevels/f46ec6.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/f46ec6.wgsl.expected.glsl
index 9d7d150..a1af03c 100644
--- a/test/intrinsics/gen/textureNumLevels/f46ec6.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLevels/f46ec6.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureNumLevels_f46ec6();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'usamplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureNumLevels_f46ec6();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'usamplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureNumLevels_f46ec6();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'usamplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureNumLevels/f5828d.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/f5828d.wgsl.expected.glsl
index 3924bda..17944a8 100644
--- a/test/intrinsics/gen/textureNumLevels/f5828d.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumLevels/f5828d.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureNumLevels_f5828d();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
@@ -49,19 +36,14 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureNumLevels_f5828d();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp mediump int'
@@ -78,20 +60,15 @@
   int res = textureQueryLevels(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureNumLevels_f5828d();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
diff --git a/test/intrinsics/gen/textureNumSamples/2c6f14.wgsl.expected.glsl b/test/intrinsics/gen/textureNumSamples/2c6f14.wgsl.expected.glsl
index 81de2d0..fe9aef9 100644
--- a/test/intrinsics/gen/textureNumSamples/2c6f14.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumSamples/2c6f14.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureSamples(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureNumSamples_2c6f14();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureSamples' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
@@ -49,19 +36,14 @@
   int res = textureSamples(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureNumSamples_2c6f14();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureSamples' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp mediump int'
@@ -78,20 +60,15 @@
   int res = textureSamples(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureNumSamples_2c6f14();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureSamples' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
diff --git a/test/intrinsics/gen/textureNumSamples/42f8bb.wgsl.expected.glsl b/test/intrinsics/gen/textureNumSamples/42f8bb.wgsl.expected.glsl
index bb0a17a..47d488a 100644
--- a/test/intrinsics/gen/textureNumSamples/42f8bb.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumSamples/42f8bb.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureSamples(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureNumSamples_42f8bb();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureSamples' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
@@ -49,19 +36,14 @@
   int res = textureSamples(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureNumSamples_42f8bb();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureSamples' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp mediump int'
@@ -78,20 +60,15 @@
   int res = textureSamples(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureNumSamples_42f8bb();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureSamples' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
diff --git a/test/intrinsics/gen/textureNumSamples/449d23.wgsl.expected.glsl b/test/intrinsics/gen/textureNumSamples/449d23.wgsl.expected.glsl
index 98c556a..709034e 100644
--- a/test/intrinsics/gen/textureNumSamples/449d23.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumSamples/449d23.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureSamples(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureNumSamples_449d23();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureSamples' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
@@ -49,19 +36,14 @@
   int res = textureSamples(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureNumSamples_449d23();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureSamples' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp mediump int'
@@ -78,20 +60,15 @@
   int res = textureSamples(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureNumSamples_449d23();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureSamples' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
diff --git a/test/intrinsics/gen/textureNumSamples/a3c8a0.wgsl.expected.glsl b/test/intrinsics/gen/textureNumSamples/a3c8a0.wgsl.expected.glsl
index 1e01150..516bc30 100644
--- a/test/intrinsics/gen/textureNumSamples/a3c8a0.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureNumSamples/a3c8a0.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   int res = textureSamples(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureNumSamples_a3c8a0();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureSamples' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
@@ -49,19 +36,14 @@
   int res = textureSamples(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureNumSamples_a3c8a0();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureSamples' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp mediump int'
@@ -78,20 +60,15 @@
   int res = textureSamples(arg_0_1);;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureNumSamples_a3c8a0();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureSamples' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp highp int'
diff --git a/test/intrinsics/gen/textureSample/02aa9b.wgsl.expected.glsl b/test/intrinsics/gen/textureSample/02aa9b.wgsl.expected.glsl
index 77a763e..00c91e0 100644
--- a/test/intrinsics/gen/textureSample/02aa9b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSample/02aa9b.wgsl.expected.glsl
@@ -9,10 +9,9 @@
 
 void fragment_main() {
   textureSample_02aa9b();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureSample/100dc0.wgsl.expected.glsl b/test/intrinsics/gen/textureSample/100dc0.wgsl.expected.glsl
index cf23155..97c7b80 100644
--- a/test/intrinsics/gen/textureSample/100dc0.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSample/100dc0.wgsl.expected.glsl
@@ -9,10 +9,9 @@
 
 void fragment_main() {
   textureSample_100dc0();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureSample/38bbb9.wgsl.expected.glsl b/test/intrinsics/gen/textureSample/38bbb9.wgsl.expected.glsl
index 4541476..a9d17e7 100644
--- a/test/intrinsics/gen/textureSample/38bbb9.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSample/38bbb9.wgsl.expected.glsl
@@ -9,10 +9,9 @@
 
 void fragment_main() {
   textureSample_38bbb9();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureSample/3b50bd.wgsl.expected.glsl b/test/intrinsics/gen/textureSample/3b50bd.wgsl.expected.glsl
index 04c2dab..10aa7b4 100644
--- a/test/intrinsics/gen/textureSample/3b50bd.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSample/3b50bd.wgsl.expected.glsl
@@ -9,10 +9,9 @@
 
 void fragment_main() {
   textureSample_3b50bd();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureSample/4dd1bf.wgsl.expected.glsl b/test/intrinsics/gen/textureSample/4dd1bf.wgsl.expected.glsl
index 0c0a8bb..a7f643c 100644
--- a/test/intrinsics/gen/textureSample/4dd1bf.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSample/4dd1bf.wgsl.expected.glsl
@@ -11,13 +11,12 @@
 
 void fragment_main() {
   textureSample_4dd1bf();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureSample/51b514.wgsl.expected.glsl b/test/intrinsics/gen/textureSample/51b514.wgsl.expected.glsl
index fa29227..ead0363 100644
--- a/test/intrinsics/gen/textureSample/51b514.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSample/51b514.wgsl.expected.glsl
@@ -9,10 +9,9 @@
 
 void fragment_main() {
   textureSample_51b514();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureSample/667d76.wgsl.expected.glsl b/test/intrinsics/gen/textureSample/667d76.wgsl.expected.glsl
index def5be6..8302945 100644
--- a/test/intrinsics/gen/textureSample/667d76.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSample/667d76.wgsl.expected.glsl
@@ -9,10 +9,9 @@
 
 void fragment_main() {
   textureSample_667d76();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureSample/6717ca.wgsl.expected.glsl b/test/intrinsics/gen/textureSample/6717ca.wgsl.expected.glsl
index 6189a03..2698d8d 100644
--- a/test/intrinsics/gen/textureSample/6717ca.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSample/6717ca.wgsl.expected.glsl
@@ -9,10 +9,9 @@
 
 void fragment_main() {
   textureSample_6717ca();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureSample/6e64fb.wgsl.expected.glsl b/test/intrinsics/gen/textureSample/6e64fb.wgsl.expected.glsl
index 1bf2893..319afe2 100644
--- a/test/intrinsics/gen/textureSample/6e64fb.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSample/6e64fb.wgsl.expected.glsl
@@ -11,13 +11,12 @@
 
 void fragment_main() {
   textureSample_6e64fb();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'sampler1D' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureSample/7c3baa.wgsl.expected.glsl b/test/intrinsics/gen/textureSample/7c3baa.wgsl.expected.glsl
index 4058d9b..9d7c749 100644
--- a/test/intrinsics/gen/textureSample/7c3baa.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSample/7c3baa.wgsl.expected.glsl
@@ -9,10 +9,9 @@
 
 void fragment_main() {
   textureSample_7c3baa();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureSample/7e9ffd.wgsl.expected.glsl b/test/intrinsics/gen/textureSample/7e9ffd.wgsl.expected.glsl
index ebd7720..86c2155 100644
--- a/test/intrinsics/gen/textureSample/7e9ffd.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSample/7e9ffd.wgsl.expected.glsl
@@ -9,10 +9,9 @@
 
 void fragment_main() {
   textureSample_7e9ffd();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureSample/8522e7.wgsl.expected.glsl b/test/intrinsics/gen/textureSample/8522e7.wgsl.expected.glsl
index 68f3566..87741c0 100644
--- a/test/intrinsics/gen/textureSample/8522e7.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSample/8522e7.wgsl.expected.glsl
@@ -9,10 +9,9 @@
 
 void fragment_main() {
   textureSample_8522e7();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureSample/c2f4e8.wgsl.expected.glsl b/test/intrinsics/gen/textureSample/c2f4e8.wgsl.expected.glsl
index 54e6cbd..7153e8c 100644
--- a/test/intrinsics/gen/textureSample/c2f4e8.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSample/c2f4e8.wgsl.expected.glsl
@@ -11,13 +11,12 @@
 
 void fragment_main() {
   textureSample_c2f4e8();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureSample/e53267.wgsl.expected.glsl b/test/intrinsics/gen/textureSample/e53267.wgsl.expected.glsl
index c014268..43ac089 100644
--- a/test/intrinsics/gen/textureSample/e53267.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSample/e53267.wgsl.expected.glsl
@@ -9,10 +9,9 @@
 
 void fragment_main() {
   textureSample_e53267();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureSample/ea7030.wgsl.expected.glsl b/test/intrinsics/gen/textureSample/ea7030.wgsl.expected.glsl
index 8006955..f1d193e 100644
--- a/test/intrinsics/gen/textureSample/ea7030.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSample/ea7030.wgsl.expected.glsl
@@ -9,10 +9,9 @@
 
 void fragment_main() {
   textureSample_ea7030();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureSampleBias/53b9f7.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleBias/53b9f7.wgsl.expected.glsl
index fb0329d..b85dbcd 100644
--- a/test/intrinsics/gen/textureSampleBias/53b9f7.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleBias/53b9f7.wgsl.expected.glsl
@@ -9,10 +9,9 @@
 
 void fragment_main() {
   textureSampleBias_53b9f7();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureSampleBias/65ac50.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleBias/65ac50.wgsl.expected.glsl
index 1091395..9a0a158 100644
--- a/test/intrinsics/gen/textureSampleBias/65ac50.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleBias/65ac50.wgsl.expected.glsl
@@ -9,10 +9,9 @@
 
 void fragment_main() {
   textureSampleBias_65ac50();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureSampleBias/6a9113.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleBias/6a9113.wgsl.expected.glsl
index d920205..2420cc9 100644
--- a/test/intrinsics/gen/textureSampleBias/6a9113.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleBias/6a9113.wgsl.expected.glsl
@@ -9,10 +9,9 @@
 
 void fragment_main() {
   textureSampleBias_6a9113();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureSampleBias/80e579.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleBias/80e579.wgsl.expected.glsl
index 1d24e97..0b9130c 100644
--- a/test/intrinsics/gen/textureSampleBias/80e579.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleBias/80e579.wgsl.expected.glsl
@@ -9,10 +9,9 @@
 
 void fragment_main() {
   textureSampleBias_80e579();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureSampleBias/81c19a.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleBias/81c19a.wgsl.expected.glsl
index eceb366..6672660 100644
--- a/test/intrinsics/gen/textureSampleBias/81c19a.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleBias/81c19a.wgsl.expected.glsl
@@ -9,10 +9,9 @@
 
 void fragment_main() {
   textureSampleBias_81c19a();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureSampleBias/d3fa1b.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleBias/d3fa1b.wgsl.expected.glsl
index 84c7017..0530165 100644
--- a/test/intrinsics/gen/textureSampleBias/d3fa1b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleBias/d3fa1b.wgsl.expected.glsl
@@ -9,10 +9,9 @@
 
 void fragment_main() {
   textureSampleBias_d3fa1b();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureSampleBias/df91bb.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleBias/df91bb.wgsl.expected.glsl
index 478b320..e68a551 100644
--- a/test/intrinsics/gen/textureSampleBias/df91bb.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleBias/df91bb.wgsl.expected.glsl
@@ -9,10 +9,9 @@
 
 void fragment_main() {
   textureSampleBias_df91bb();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureSampleBias/eed7c4.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleBias/eed7c4.wgsl.expected.glsl
index 086831e..ae01821 100644
--- a/test/intrinsics/gen/textureSampleBias/eed7c4.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleBias/eed7c4.wgsl.expected.glsl
@@ -11,13 +11,12 @@
 
 void fragment_main() {
   textureSampleBias_eed7c4();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureSampleCompare/25fcd1.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleCompare/25fcd1.wgsl.expected.glsl
index 1231a76..ff08b55 100644
--- a/test/intrinsics/gen/textureSampleCompare/25fcd1.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleCompare/25fcd1.wgsl.expected.glsl
@@ -11,13 +11,12 @@
 
 void fragment_main() {
   textureSampleCompare_25fcd1();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: 'textureOffset' : no matching overloaded function found 
 ERROR: 0:7: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureSampleCompare/3a5923.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleCompare/3a5923.wgsl.expected.glsl
index 7c2b7a6..60f4e27 100644
--- a/test/intrinsics/gen/textureSampleCompare/3a5923.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleCompare/3a5923.wgsl.expected.glsl
@@ -11,13 +11,12 @@
 
 void fragment_main() {
   textureSampleCompare_3a5923();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: '=' :  cannot convert from ' global highp 4-component vector of float' to ' temp mediump float'
 ERROR: 0:7: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureSampleCompare/63fb83.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleCompare/63fb83.wgsl.expected.glsl
index 66c6f93..c0fcda1 100644
--- a/test/intrinsics/gen/textureSampleCompare/63fb83.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleCompare/63fb83.wgsl.expected.glsl
@@ -11,13 +11,12 @@
 
 void fragment_main() {
   textureSampleCompare_63fb83();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: '=' :  cannot convert from ' global highp 4-component vector of float' to ' temp mediump float'
 ERROR: 0:7: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureSampleCompare/98b85c.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleCompare/98b85c.wgsl.expected.glsl
index c0ae874..e8c1d5c 100644
--- a/test/intrinsics/gen/textureSampleCompare/98b85c.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleCompare/98b85c.wgsl.expected.glsl
@@ -11,13 +11,12 @@
 
 void fragment_main() {
   textureSampleCompare_98b85c();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: 'textureOffset' : no matching overloaded function found 
 ERROR: 0:7: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureSampleCompare/a3ca7e.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleCompare/a3ca7e.wgsl.expected.glsl
index c7d428c..34b1fea 100644
--- a/test/intrinsics/gen/textureSampleCompare/a3ca7e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleCompare/a3ca7e.wgsl.expected.glsl
@@ -11,13 +11,12 @@
 
 void fragment_main() {
   textureSampleCompare_a3ca7e();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureSampleCompare/dd431d.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleCompare/dd431d.wgsl.expected.glsl
index 8c04e11..79482dc 100644
--- a/test/intrinsics/gen/textureSampleCompare/dd431d.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleCompare/dd431d.wgsl.expected.glsl
@@ -11,13 +11,12 @@
 
 void fragment_main() {
   textureSampleCompare_dd431d();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: '=' :  cannot convert from ' global highp 4-component vector of float' to ' temp mediump float'
 ERROR: 0:7: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/011a8f.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleCompareLevel/011a8f.wgsl.expected.glsl
index 7f8280e..40fe943 100644
--- a/test/intrinsics/gen/textureSampleCompareLevel/011a8f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleCompareLevel/011a8f.wgsl.expected.glsl
@@ -9,31 +9,18 @@
   float res = textureOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 1.0f, ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureSampleCompareLevel_011a8f();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: 'textureOffset' : no matching overloaded function found 
 ERROR: 0:7: '' : compilation terminated 
@@ -50,19 +37,14 @@
   float res = textureOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 1.0f, ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureSampleCompareLevel_011a8f();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: 'textureOffset' : no matching overloaded function found 
 ERROR: 0:7: '' : compilation terminated 
@@ -79,20 +61,15 @@
   float res = textureOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 1.0f, ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureSampleCompareLevel_011a8f();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: 'textureOffset' : no matching overloaded function found 
 ERROR: 0:7: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/1116ed.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleCompareLevel/1116ed.wgsl.expected.glsl
index a994097..5b38908 100644
--- a/test/intrinsics/gen/textureSampleCompareLevel/1116ed.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleCompareLevel/1116ed.wgsl.expected.glsl
@@ -9,31 +9,18 @@
   float res = texture(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureSampleCompareLevel_1116ed();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: 'texture' : no matching overloaded function found 
 ERROR: 0:7: '' : compilation terminated 
@@ -50,19 +37,14 @@
   float res = texture(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureSampleCompareLevel_1116ed();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: '=' :  cannot convert from ' global highp 4-component vector of float' to ' temp mediump float'
 ERROR: 0:7: '' : compilation terminated 
@@ -79,20 +61,15 @@
   float res = texture(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureSampleCompareLevel_1116ed();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: '=' :  cannot convert from ' global highp 4-component vector of float' to ' temp mediump float'
 ERROR: 0:7: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/1568e3.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleCompareLevel/1568e3.wgsl.expected.glsl
index 5ec997d..b2824ef 100644
--- a/test/intrinsics/gen/textureSampleCompareLevel/1568e3.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleCompareLevel/1568e3.wgsl.expected.glsl
@@ -9,31 +9,18 @@
   float res = texture(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureSampleCompareLevel_1568e3();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: 'texture' : no matching overloaded function found 
 ERROR: 0:7: '' : compilation terminated 
@@ -50,19 +37,14 @@
   float res = texture(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureSampleCompareLevel_1568e3();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: '=' :  cannot convert from ' global highp 4-component vector of float' to ' temp mediump float'
 ERROR: 0:7: '' : compilation terminated 
@@ -79,20 +61,15 @@
   float res = texture(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureSampleCompareLevel_1568e3();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: '=' :  cannot convert from ' global highp 4-component vector of float' to ' temp mediump float'
 ERROR: 0:7: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/2ad2b1.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleCompareLevel/2ad2b1.wgsl.expected.glsl
index b3a2099..0091bc0 100644
--- a/test/intrinsics/gen/textureSampleCompareLevel/2ad2b1.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleCompareLevel/2ad2b1.wgsl.expected.glsl
@@ -9,31 +9,18 @@
   float res = texture(arg_0_arg_1, vec2(0.0f, 0.0f), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureSampleCompareLevel_2ad2b1();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: 'texture' : no matching overloaded function found 
 ERROR: 0:7: '' : compilation terminated 
@@ -50,19 +37,14 @@
   float res = texture(arg_0_arg_1, vec2(0.0f, 0.0f), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureSampleCompareLevel_2ad2b1();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: '=' :  cannot convert from ' global highp 4-component vector of float' to ' temp mediump float'
 ERROR: 0:7: '' : compilation terminated 
@@ -79,20 +61,15 @@
   float res = texture(arg_0_arg_1, vec2(0.0f, 0.0f), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureSampleCompareLevel_2ad2b1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: '=' :  cannot convert from ' global highp 4-component vector of float' to ' temp mediump float'
 ERROR: 0:7: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/4cf3a2.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleCompareLevel/4cf3a2.wgsl.expected.glsl
index bdbfe50..d52c23e 100644
--- a/test/intrinsics/gen/textureSampleCompareLevel/4cf3a2.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleCompareLevel/4cf3a2.wgsl.expected.glsl
@@ -9,31 +9,18 @@
   float res = texture(arg_0_arg_1, vec4(0.0f, 0.0f, 0.0f, float(1)), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureSampleCompareLevel_4cf3a2();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -50,19 +37,14 @@
   float res = texture(arg_0_arg_1, vec4(0.0f, 0.0f, 0.0f, float(1)), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureSampleCompareLevel_4cf3a2();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -79,20 +61,15 @@
   float res = texture(arg_0_arg_1, vec4(0.0f, 0.0f, 0.0f, float(1)), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureSampleCompareLevel_4cf3a2();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/f8121c.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleCompareLevel/f8121c.wgsl.expected.glsl
index da1ac6c..2d0da97 100644
--- a/test/intrinsics/gen/textureSampleCompareLevel/f8121c.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleCompareLevel/f8121c.wgsl.expected.glsl
@@ -9,31 +9,18 @@
   float res = textureOffset(arg_0_arg_1, vec2(0.0f, 0.0f), 1.0f, ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureSampleCompareLevel_f8121c();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: 'textureOffset' : no matching overloaded function found 
 ERROR: 0:7: '' : compilation terminated 
@@ -50,19 +37,14 @@
   float res = textureOffset(arg_0_arg_1, vec2(0.0f, 0.0f), 1.0f, ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureSampleCompareLevel_f8121c();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: 'textureOffset' : no matching overloaded function found 
 ERROR: 0:7: '' : compilation terminated 
@@ -79,20 +61,15 @@
   float res = textureOffset(arg_0_arg_1, vec2(0.0f, 0.0f), 1.0f, ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureSampleCompareLevel_f8121c();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: 'textureOffset' : no matching overloaded function found 
 ERROR: 0:7: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureSampleGrad/21402b.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleGrad/21402b.wgsl.expected.glsl
index 7b9b193..d998ea6 100644
--- a/test/intrinsics/gen/textureSampleGrad/21402b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleGrad/21402b.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   vec4 res = textureGrad(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureSampleGrad_21402b();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -41,19 +28,14 @@
   vec4 res = textureGrad(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureSampleGrad_21402b();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -63,17 +45,12 @@
   vec4 res = textureGrad(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureSampleGrad_21402b();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureSampleGrad/2ecd8f.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleGrad/2ecd8f.wgsl.expected.glsl
index 3a47f0d..dca9e6a 100644
--- a/test/intrinsics/gen/textureSampleGrad/2ecd8f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleGrad/2ecd8f.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   vec4 res = textureGrad(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureSampleGrad_2ecd8f();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -41,19 +28,14 @@
   vec4 res = textureGrad(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureSampleGrad_2ecd8f();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -63,17 +45,12 @@
   vec4 res = textureGrad(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureSampleGrad_2ecd8f();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureSampleGrad/468f88.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleGrad/468f88.wgsl.expected.glsl
index 107a45f..6c41e56 100644
--- a/test/intrinsics/gen/textureSampleGrad/468f88.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleGrad/468f88.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   vec4 res = textureGradOffset(arg_0_arg_1, vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureSampleGrad_468f88();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -41,19 +28,14 @@
   vec4 res = textureGradOffset(arg_0_arg_1, vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureSampleGrad_468f88();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -63,17 +45,12 @@
   vec4 res = textureGradOffset(arg_0_arg_1, vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureSampleGrad_468f88();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureSampleGrad/521263.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleGrad/521263.wgsl.expected.glsl
index bfed096..2eaa867 100644
--- a/test/intrinsics/gen/textureSampleGrad/521263.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleGrad/521263.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   vec4 res = textureGrad(arg_0_arg_1, vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureSampleGrad_521263();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -41,19 +28,14 @@
   vec4 res = textureGrad(arg_0_arg_1, vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureSampleGrad_521263();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -63,17 +45,12 @@
   vec4 res = textureGrad(arg_0_arg_1, vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureSampleGrad_521263();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureSampleGrad/5312f4.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleGrad/5312f4.wgsl.expected.glsl
index c740f15..82e4113 100644
--- a/test/intrinsics/gen/textureSampleGrad/5312f4.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleGrad/5312f4.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   vec4 res = textureGrad(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureSampleGrad_5312f4();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -41,19 +28,14 @@
   vec4 res = textureGrad(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureSampleGrad_5312f4();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -63,17 +45,12 @@
   vec4 res = textureGrad(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureSampleGrad_5312f4();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureSampleGrad/872f00.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleGrad/872f00.wgsl.expected.glsl
index b8527be..dd67af7 100644
--- a/test/intrinsics/gen/textureSampleGrad/872f00.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleGrad/872f00.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   vec4 res = textureGradOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureSampleGrad_872f00();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -41,19 +28,14 @@
   vec4 res = textureGradOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureSampleGrad_872f00();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -63,17 +45,12 @@
   vec4 res = textureGradOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureSampleGrad_872f00();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureSampleGrad/e383db.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleGrad/e383db.wgsl.expected.glsl
index 331edfe..76bfe69 100644
--- a/test/intrinsics/gen/textureSampleGrad/e383db.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleGrad/e383db.wgsl.expected.glsl
@@ -9,31 +9,18 @@
   vec4 res = textureGrad(arg_0_arg_1, vec4(0.0f, 0.0f, 0.0f, float(1)), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureSampleGrad_e383db();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -50,19 +37,14 @@
   vec4 res = textureGrad(arg_0_arg_1, vec4(0.0f, 0.0f, 0.0f, float(1)), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureSampleGrad_e383db();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -79,20 +61,15 @@
   vec4 res = textureGrad(arg_0_arg_1, vec4(0.0f, 0.0f, 0.0f, float(1)), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureSampleGrad_e383db();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureSampleGrad/e9a2f7.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleGrad/e9a2f7.wgsl.expected.glsl
index ef27adf..320cb92 100644
--- a/test/intrinsics/gen/textureSampleGrad/e9a2f7.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleGrad/e9a2f7.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   vec4 res = textureGradOffset(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), ivec3(0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureSampleGrad_e9a2f7();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -41,19 +28,14 @@
   vec4 res = textureGradOffset(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), ivec3(0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureSampleGrad_e9a2f7();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -63,17 +45,12 @@
   vec4 res = textureGradOffset(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), ivec3(0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureSampleGrad_e9a2f7();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureSampleLevel/02be59.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleLevel/02be59.wgsl.expected.glsl
index cb419ca..d35e590 100644
--- a/test/intrinsics/gen/textureSampleLevel/02be59.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleLevel/02be59.wgsl.expected.glsl
@@ -9,31 +9,18 @@
   float res = textureLod(arg_0_arg_1, vec2(0.0f, 0.0f), 0).x;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureSampleLevel_02be59();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: 'textureLod' : no matching overloaded function found 
 ERROR: 0:7: '' : compilation terminated 
@@ -50,19 +37,14 @@
   float res = textureLod(arg_0_arg_1, vec2(0.0f, 0.0f), 0).x;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureSampleLevel_02be59();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: 'textureLod' : no matching overloaded function found 
 ERROR: 0:7: '' : compilation terminated 
@@ -79,20 +61,15 @@
   float res = textureLod(arg_0_arg_1, vec2(0.0f, 0.0f), 0).x;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureSampleLevel_02be59();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: 'textureLod' : no matching overloaded function found 
 ERROR: 0:7: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureSampleLevel/0bdd9a.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleLevel/0bdd9a.wgsl.expected.glsl
index dbc1453..c78abca 100644
--- a/test/intrinsics/gen/textureSampleLevel/0bdd9a.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleLevel/0bdd9a.wgsl.expected.glsl
@@ -9,31 +9,18 @@
   vec4 res = textureLod(arg_0_arg_1, vec4(0.0f, 0.0f, 0.0f, float(1)), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureSampleLevel_0bdd9a();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -50,19 +37,14 @@
   vec4 res = textureLod(arg_0_arg_1, vec4(0.0f, 0.0f, 0.0f, float(1)), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureSampleLevel_0bdd9a();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -79,20 +61,15 @@
   vec4 res = textureLod(arg_0_arg_1, vec4(0.0f, 0.0f, 0.0f, float(1)), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureSampleLevel_0bdd9a();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureSampleLevel/1b0291.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleLevel/1b0291.wgsl.expected.glsl
index 7722303..fe01f53 100644
--- a/test/intrinsics/gen/textureSampleLevel/1b0291.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleLevel/1b0291.wgsl.expected.glsl
@@ -9,31 +9,18 @@
   float res = textureLod(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), 0).x;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureSampleLevel_1b0291();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: 'textureLod' : no matching overloaded function found 
 ERROR: 0:7: '' : compilation terminated 
@@ -50,19 +37,14 @@
   float res = textureLod(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), 0).x;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureSampleLevel_1b0291();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: 'textureLod' : no matching overloaded function found 
 ERROR: 0:7: '' : compilation terminated 
@@ -79,20 +61,15 @@
   float res = textureLod(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), 0).x;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureSampleLevel_1b0291();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: 'textureLod' : no matching overloaded function found 
 ERROR: 0:7: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureSampleLevel/1bf73e.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleLevel/1bf73e.wgsl.expected.glsl
index c383326..720dd30 100644
--- a/test/intrinsics/gen/textureSampleLevel/1bf73e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleLevel/1bf73e.wgsl.expected.glsl
@@ -9,31 +9,18 @@
   float res = textureLod(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 0).x;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureSampleLevel_1bf73e();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: 'textureLod' : no matching overloaded function found 
 ERROR: 0:7: '' : compilation terminated 
@@ -50,19 +37,14 @@
   float res = textureLod(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 0).x;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureSampleLevel_1bf73e();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: 'textureLod' : no matching overloaded function found 
 ERROR: 0:7: '' : compilation terminated 
@@ -79,20 +61,15 @@
   float res = textureLod(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 0).x;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureSampleLevel_1bf73e();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: 'textureLod' : no matching overloaded function found 
 ERROR: 0:7: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureSampleLevel/302be4.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleLevel/302be4.wgsl.expected.glsl
index 394a15c..8a12180 100644
--- a/test/intrinsics/gen/textureSampleLevel/302be4.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleLevel/302be4.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   vec4 res = textureLod(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureSampleLevel_302be4();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -41,19 +28,14 @@
   vec4 res = textureLod(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureSampleLevel_302be4();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -63,17 +45,12 @@
   vec4 res = textureLod(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureSampleLevel_302be4();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureSampleLevel/47daa4.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleLevel/47daa4.wgsl.expected.glsl
index 50c9e1e..a41ec42 100644
--- a/test/intrinsics/gen/textureSampleLevel/47daa4.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleLevel/47daa4.wgsl.expected.glsl
@@ -9,31 +9,18 @@
   float res = textureLodOffset(arg_0_arg_1, vec2(0.0f, 0.0f), 0, ivec2(0, 0)).x;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureSampleLevel_47daa4();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: 'textureLodOffset' : no matching overloaded function found 
 ERROR: 0:7: '' : compilation terminated 
@@ -50,19 +37,14 @@
   float res = textureLodOffset(arg_0_arg_1, vec2(0.0f, 0.0f), 0, ivec2(0, 0)).x;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureSampleLevel_47daa4();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: 'textureLodOffset' : no matching overloaded function found 
 ERROR: 0:7: '' : compilation terminated 
@@ -79,20 +61,15 @@
   float res = textureLodOffset(arg_0_arg_1, vec2(0.0f, 0.0f), 0, ivec2(0, 0)).x;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureSampleLevel_47daa4();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: 'textureLodOffset' : no matching overloaded function found 
 ERROR: 0:7: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureSampleLevel/690d95.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleLevel/690d95.wgsl.expected.glsl
index 7bff4d0..b316472 100644
--- a/test/intrinsics/gen/textureSampleLevel/690d95.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleLevel/690d95.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   vec4 res = textureLodOffset(arg_0_arg_1, vec2(0.0f, 0.0f), 1.0f, ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureSampleLevel_690d95();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -41,19 +28,14 @@
   vec4 res = textureLodOffset(arg_0_arg_1, vec2(0.0f, 0.0f), 1.0f, ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureSampleLevel_690d95();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -63,17 +45,12 @@
   vec4 res = textureLodOffset(arg_0_arg_1, vec2(0.0f, 0.0f), 1.0f, ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureSampleLevel_690d95();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureSampleLevel/979816.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleLevel/979816.wgsl.expected.glsl
index 2484ec5..74de764 100644
--- a/test/intrinsics/gen/textureSampleLevel/979816.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleLevel/979816.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   vec4 res = textureLod(arg_0_arg_1, vec2(0.0f, 0.0f), 0.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureSampleLevel_979816();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -41,19 +28,14 @@
   vec4 res = textureLod(arg_0_arg_1, vec2(0.0f, 0.0f), 0.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureSampleLevel_979816();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -63,17 +45,12 @@
   vec4 res = textureLod(arg_0_arg_1, vec2(0.0f, 0.0f), 0.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureSampleLevel_979816();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureSampleLevel/9bd37b.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleLevel/9bd37b.wgsl.expected.glsl
index e660e98..579f820 100644
--- a/test/intrinsics/gen/textureSampleLevel/9bd37b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleLevel/9bd37b.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   vec4 res = textureLodOffset(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), 1.0f, ivec3(0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureSampleLevel_9bd37b();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -41,19 +28,14 @@
   vec4 res = textureLodOffset(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), 1.0f, ivec3(0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureSampleLevel_9bd37b();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -63,17 +45,12 @@
   vec4 res = textureLodOffset(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), 1.0f, ivec3(0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureSampleLevel_9bd37b();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureSampleLevel/a4af26.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleLevel/a4af26.wgsl.expected.glsl
index 2a2dadc..b50f062 100644
--- a/test/intrinsics/gen/textureSampleLevel/a4af26.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleLevel/a4af26.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   vec4 res = textureLodOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 1.0f, ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureSampleLevel_a4af26();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -41,19 +28,14 @@
   vec4 res = textureLodOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 1.0f, ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureSampleLevel_a4af26();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -63,17 +45,12 @@
   vec4 res = textureLodOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 1.0f, ivec2(0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureSampleLevel_a4af26();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureSampleLevel/abfcc0.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleLevel/abfcc0.wgsl.expected.glsl
index 2c839e5..af97c44 100644
--- a/test/intrinsics/gen/textureSampleLevel/abfcc0.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleLevel/abfcc0.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   vec4 res = textureLod(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureSampleLevel_abfcc0();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -41,19 +28,14 @@
   vec4 res = textureLod(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureSampleLevel_abfcc0();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -63,17 +45,12 @@
   vec4 res = textureLod(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureSampleLevel_abfcc0();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureSampleLevel/ae5e39.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleLevel/ae5e39.wgsl.expected.glsl
index f6c7b8a..f617dbb 100644
--- a/test/intrinsics/gen/textureSampleLevel/ae5e39.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleLevel/ae5e39.wgsl.expected.glsl
@@ -9,31 +9,18 @@
   float res = textureLod(arg_0_arg_1, vec4(0.0f, 0.0f, 0.0f, float(1)), 0).x;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureSampleLevel_ae5e39();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -50,19 +37,14 @@
   float res = textureLod(arg_0_arg_1, vec4(0.0f, 0.0f, 0.0f, float(1)), 0).x;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureSampleLevel_ae5e39();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
@@ -79,20 +61,15 @@
   float res = textureLod(arg_0_arg_1, vec4(0.0f, 0.0f, 0.0f, float(1)), 0).x;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureSampleLevel_ae5e39();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureSampleLevel/ba93b3.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleLevel/ba93b3.wgsl.expected.glsl
index cfdb547..d44d806 100644
--- a/test/intrinsics/gen/textureSampleLevel/ba93b3.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleLevel/ba93b3.wgsl.expected.glsl
@@ -9,31 +9,18 @@
   float res = textureLodOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 0, ivec2(0, 0)).x;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureSampleLevel_ba93b3();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: 'textureLodOffset' : no matching overloaded function found 
 ERROR: 0:7: '' : compilation terminated 
@@ -50,19 +37,14 @@
   float res = textureLodOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 0, ivec2(0, 0)).x;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureSampleLevel_ba93b3();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: 'textureLodOffset' : no matching overloaded function found 
 ERROR: 0:7: '' : compilation terminated 
@@ -79,20 +61,15 @@
   float res = textureLodOffset(arg_0_arg_1, vec3(0.0f, 0.0f, float(1)), 0, ivec2(0, 0)).x;
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureSampleLevel_ba93b3();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: 'textureLodOffset' : no matching overloaded function found 
 ERROR: 0:7: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureSampleLevel/c32df7.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleLevel/c32df7.wgsl.expected.glsl
index 97a3f72..bb08590 100644
--- a/test/intrinsics/gen/textureSampleLevel/c32df7.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleLevel/c32df7.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   vec4 res = textureLod(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureSampleLevel_c32df7();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -41,19 +28,14 @@
   vec4 res = textureLod(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureSampleLevel_c32df7();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -63,17 +45,12 @@
   vec4 res = textureLod(arg_0_arg_1, vec3(0.0f, 0.0f, 0.0f), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureSampleLevel_c32df7();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureSampleLevel/c6aca6.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleLevel/c6aca6.wgsl.expected.glsl
index c4375e5..ce9d413 100644
--- a/test/intrinsics/gen/textureSampleLevel/c6aca6.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureSampleLevel/c6aca6.wgsl.expected.glsl
@@ -7,31 +7,18 @@
   vec4 res = textureLod(arg_0_arg_1, vec2(0.0f, 0.0f), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureSampleLevel_c6aca6();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -41,19 +28,14 @@
   vec4 res = textureLod(arg_0_arg_1, vec2(0.0f, 0.0f), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureSampleLevel_c6aca6();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -63,17 +45,12 @@
   vec4 res = textureLod(arg_0_arg_1, vec2(0.0f, 0.0f), 1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureSampleLevel_c6aca6();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureStore/05ce15.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/05ce15.wgsl.expected.glsl
index 37a91f0..0ca1141 100644
--- a/test/intrinsics/gen/textureStore/05ce15.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/05ce15.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   imageStore(arg_0_1, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_05ce15();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   imageStore(arg_0_1, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_05ce15();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   imageStore(arg_0_1, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_05ce15();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureStore/064c7f.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/064c7f.wgsl.expected.glsl
index 19110db..4d133a8 100644
--- a/test/intrinsics/gen/textureStore/064c7f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/064c7f.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   imageStore(arg_0_1, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_064c7f();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   imageStore(arg_0_1, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_064c7f();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   imageStore(arg_0_1, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_064c7f();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureStore/068641.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/068641.wgsl.expected.glsl
index 85d4b9f..1340b38 100644
--- a/test/intrinsics/gen/textureStore/068641.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/068641.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   imageStore(arg_0_1, ivec3(0, 0, 0), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_068641();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   imageStore(arg_0_1, ivec3(0, 0, 0), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_068641();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   imageStore(arg_0_1, ivec3(0, 0, 0), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_068641();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureStore/0af6b5.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/0af6b5.wgsl.expected.glsl
index e127986..b790988 100644
--- a/test/intrinsics/gen/textureStore/0af6b5.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/0af6b5.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   imageStore(arg_0_1, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_0af6b5();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   imageStore(arg_0_1, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_0af6b5();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   imageStore(arg_0_1, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_0af6b5();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureStore/0c3dff.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/0c3dff.wgsl.expected.glsl
index cdd5c97..68e9394 100644
--- a/test/intrinsics/gen/textureStore/0c3dff.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/0c3dff.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   imageStore(arg_0_1, ivec2(0, 0), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_0c3dff();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   imageStore(arg_0_1, ivec2(0, 0), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_0c3dff();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   imageStore(arg_0_1, ivec2(0, 0), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_0c3dff();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureStore/102722.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/102722.wgsl.expected.glsl
index f893594..47e6a3e 100644
--- a/test/intrinsics/gen/textureStore/102722.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/102722.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   imageStore(arg_0_1, 1, uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_102722();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'uimage1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -49,19 +36,14 @@
   imageStore(arg_0_1, 1, uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_102722();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'uimage1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -78,20 +60,15 @@
   imageStore(arg_0_1, 1, uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_102722();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'uimage1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
diff --git a/test/intrinsics/gen/textureStore/1bbd08.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/1bbd08.wgsl.expected.glsl
index 231d6ff..830fb91 100644
--- a/test/intrinsics/gen/textureStore/1bbd08.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/1bbd08.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   imageStore(arg_0_1, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_1bbd08();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   imageStore(arg_0_1, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_1bbd08();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   imageStore(arg_0_1, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_1bbd08();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureStore/1c02e7.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/1c02e7.wgsl.expected.glsl
index 906d185..2ceb65e 100644
--- a/test/intrinsics/gen/textureStore/1c02e7.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/1c02e7.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   imageStore(arg_0_1, ivec3(0, 0, 1), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_1c02e7();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   imageStore(arg_0_1, ivec3(0, 0, 1), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_1c02e7();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   imageStore(arg_0_1, ivec3(0, 0, 1), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_1c02e7();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureStore/22d955.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/22d955.wgsl.expected.glsl
index 6de31ca..83ebec0 100644
--- a/test/intrinsics/gen/textureStore/22d955.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/22d955.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   imageStore(arg_0_1, ivec3(0, 0, 1), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_22d955();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   imageStore(arg_0_1, ivec3(0, 0, 1), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_22d955();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   imageStore(arg_0_1, ivec3(0, 0, 1), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_22d955();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureStore/26bf70.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/26bf70.wgsl.expected.glsl
index 9398a7e..41f1319 100644
--- a/test/intrinsics/gen/textureStore/26bf70.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/26bf70.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   imageStore(arg_0_1, ivec2(0, 0), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_26bf70();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   imageStore(arg_0_1, ivec2(0, 0), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_26bf70();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   imageStore(arg_0_1, ivec2(0, 0), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_26bf70();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureStore/2796b4.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/2796b4.wgsl.expected.glsl
index 9c2d7ff..c97a566 100644
--- a/test/intrinsics/gen/textureStore/2796b4.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/2796b4.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   imageStore(arg_0_1, ivec3(0, 0, 0), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_2796b4();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   imageStore(arg_0_1, ivec3(0, 0, 0), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_2796b4();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   imageStore(arg_0_1, ivec3(0, 0, 0), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_2796b4();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureStore/2ac6c7.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/2ac6c7.wgsl.expected.glsl
index 4b15eaa..b550e81 100644
--- a/test/intrinsics/gen/textureStore/2ac6c7.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/2ac6c7.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   imageStore(arg_0_1, 1, vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_2ac6c7();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -49,19 +36,14 @@
   imageStore(arg_0_1, 1, vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_2ac6c7();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -78,20 +60,15 @@
   imageStore(arg_0_1, 1, vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_2ac6c7();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
diff --git a/test/intrinsics/gen/textureStore/2eb2a4.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/2eb2a4.wgsl.expected.glsl
index de17a70..d0eb830 100644
--- a/test/intrinsics/gen/textureStore/2eb2a4.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/2eb2a4.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   imageStore(arg_0_1, 1, uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_2eb2a4();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'uimage1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -49,19 +36,14 @@
   imageStore(arg_0_1, 1, uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_2eb2a4();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'uimage1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -78,20 +60,15 @@
   imageStore(arg_0_1, 1, uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_2eb2a4();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'uimage1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
diff --git a/test/intrinsics/gen/textureStore/2ed2a3.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/2ed2a3.wgsl.expected.glsl
index 6c5f37e..d5c681c 100644
--- a/test/intrinsics/gen/textureStore/2ed2a3.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/2ed2a3.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   imageStore(arg_0_1, 1, vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_2ed2a3();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -49,19 +36,14 @@
   imageStore(arg_0_1, 1, vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_2ed2a3();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -78,20 +60,15 @@
   imageStore(arg_0_1, 1, vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_2ed2a3();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
diff --git a/test/intrinsics/gen/textureStore/31745b.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/31745b.wgsl.expected.glsl
index cc698dc..8ab0724 100644
--- a/test/intrinsics/gen/textureStore/31745b.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/31745b.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   imageStore(arg_0_1, ivec2(0, 0), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_31745b();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   imageStore(arg_0_1, ivec2(0, 0), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_31745b();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   imageStore(arg_0_1, ivec2(0, 0), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_31745b();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureStore/32f368.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/32f368.wgsl.expected.glsl
index 226f284..eb44f0f 100644
--- a/test/intrinsics/gen/textureStore/32f368.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/32f368.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   imageStore(arg_0_1, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_32f368();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   imageStore(arg_0_1, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_32f368();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   imageStore(arg_0_1, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_32f368();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureStore/331aee.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/331aee.wgsl.expected.glsl
index 0a51372..fed483d 100644
--- a/test/intrinsics/gen/textureStore/331aee.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/331aee.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   imageStore(arg_0_1, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_331aee();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   imageStore(arg_0_1, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_331aee();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   imageStore(arg_0_1, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_331aee();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureStore/38e8d7.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/38e8d7.wgsl.expected.glsl
index 2a5a1be..c5ac7b6 100644
--- a/test/intrinsics/gen/textureStore/38e8d7.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/38e8d7.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   imageStore(arg_0_1, ivec3(0, 0, 1), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_38e8d7();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   imageStore(arg_0_1, ivec3(0, 0, 1), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_38e8d7();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   imageStore(arg_0_1, ivec3(0, 0, 1), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_38e8d7();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureStore/3a52ac.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/3a52ac.wgsl.expected.glsl
index 9534df4..2e892b4 100644
--- a/test/intrinsics/gen/textureStore/3a52ac.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/3a52ac.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   imageStore(arg_0_1, ivec3(0, 0, 1), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_3a52ac();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   imageStore(arg_0_1, ivec3(0, 0, 1), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_3a52ac();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   imageStore(arg_0_1, ivec3(0, 0, 1), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_3a52ac();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureStore/3bb7a1.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/3bb7a1.wgsl.expected.glsl
index 6dccb92..fbfe1a9 100644
--- a/test/intrinsics/gen/textureStore/3bb7a1.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/3bb7a1.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   imageStore(arg_0_1, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_3bb7a1();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   imageStore(arg_0_1, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_3bb7a1();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   imageStore(arg_0_1, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_3bb7a1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureStore/3bec15.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/3bec15.wgsl.expected.glsl
index dc7578c..b767a9a 100644
--- a/test/intrinsics/gen/textureStore/3bec15.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/3bec15.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   imageStore(arg_0_1, 1, uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_3bec15();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'uimage1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -49,19 +36,14 @@
   imageStore(arg_0_1, 1, uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_3bec15();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'uimage1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -78,20 +60,15 @@
   imageStore(arg_0_1, 1, uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_3bec15();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'uimage1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
diff --git a/test/intrinsics/gen/textureStore/441ba8.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/441ba8.wgsl.expected.glsl
index 4051914..0d67525 100644
--- a/test/intrinsics/gen/textureStore/441ba8.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/441ba8.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   imageStore(arg_0_1, ivec3(0, 0, 0), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_441ba8();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   imageStore(arg_0_1, ivec3(0, 0, 0), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_441ba8();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   imageStore(arg_0_1, ivec3(0, 0, 0), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_441ba8();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureStore/4fc057.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/4fc057.wgsl.expected.glsl
index 848ecfb..345f685 100644
--- a/test/intrinsics/gen/textureStore/4fc057.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/4fc057.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   imageStore(arg_0_1, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_4fc057();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   imageStore(arg_0_1, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_4fc057();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   imageStore(arg_0_1, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_4fc057();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureStore/5a2f8f.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/5a2f8f.wgsl.expected.glsl
index 7c355c2..6a73b35 100644
--- a/test/intrinsics/gen/textureStore/5a2f8f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/5a2f8f.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   imageStore(arg_0_1, 1, ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_5a2f8f();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'iimage1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -49,19 +36,14 @@
   imageStore(arg_0_1, 1, ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_5a2f8f();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'iimage1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -78,20 +60,15 @@
   imageStore(arg_0_1, 1, ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_5a2f8f();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'iimage1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
diff --git a/test/intrinsics/gen/textureStore/60975f.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/60975f.wgsl.expected.glsl
index 2f11b81..65ba86a 100644
--- a/test/intrinsics/gen/textureStore/60975f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/60975f.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   imageStore(arg_0_1, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_60975f();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   imageStore(arg_0_1, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_60975f();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   imageStore(arg_0_1, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_60975f();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureStore/682fd6.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/682fd6.wgsl.expected.glsl
index 05c42da..5b4b7c6 100644
--- a/test/intrinsics/gen/textureStore/682fd6.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/682fd6.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   imageStore(arg_0_1, ivec2(0, 0), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_682fd6();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   imageStore(arg_0_1, ivec2(0, 0), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_682fd6();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   imageStore(arg_0_1, ivec2(0, 0), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_682fd6();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureStore/6b75c3.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/6b75c3.wgsl.expected.glsl
index 40e7774..cedcba4 100644
--- a/test/intrinsics/gen/textureStore/6b75c3.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/6b75c3.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   imageStore(arg_0_1, 1, vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_6b75c3();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -49,19 +36,14 @@
   imageStore(arg_0_1, 1, vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_6b75c3();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -78,20 +60,15 @@
   imageStore(arg_0_1, 1, vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_6b75c3();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
diff --git a/test/intrinsics/gen/textureStore/6b80d2.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/6b80d2.wgsl.expected.glsl
index 648d740..c338242 100644
--- a/test/intrinsics/gen/textureStore/6b80d2.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/6b80d2.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   imageStore(arg_0_1, 1, ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_6b80d2();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'iimage1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -49,19 +36,14 @@
   imageStore(arg_0_1, 1, ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_6b80d2();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'iimage1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -78,20 +60,15 @@
   imageStore(arg_0_1, 1, ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_6b80d2();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'iimage1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
diff --git a/test/intrinsics/gen/textureStore/6cff2e.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/6cff2e.wgsl.expected.glsl
index e42d2a7..bd2b8bb 100644
--- a/test/intrinsics/gen/textureStore/6cff2e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/6cff2e.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   imageStore(arg_0_1, ivec2(0, 0), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_6cff2e();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   imageStore(arg_0_1, ivec2(0, 0), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_6cff2e();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   imageStore(arg_0_1, ivec2(0, 0), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_6cff2e();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureStore/6da692.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/6da692.wgsl.expected.glsl
index 40998d2..19eaa4f 100644
--- a/test/intrinsics/gen/textureStore/6da692.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/6da692.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   imageStore(arg_0_1, ivec3(0, 0, 1), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_6da692();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   imageStore(arg_0_1, ivec3(0, 0, 1), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_6da692();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   imageStore(arg_0_1, ivec3(0, 0, 1), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_6da692();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureStore/731349.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/731349.wgsl.expected.glsl
index 85c9f9f..b73e16a 100644
--- a/test/intrinsics/gen/textureStore/731349.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/731349.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   imageStore(arg_0_1, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_731349();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   imageStore(arg_0_1, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_731349();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   imageStore(arg_0_1, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_731349();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureStore/752da6.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/752da6.wgsl.expected.glsl
index b752f92..d0697ba 100644
--- a/test/intrinsics/gen/textureStore/752da6.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/752da6.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   imageStore(arg_0_1, ivec2(0, 0), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_752da6();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   imageStore(arg_0_1, ivec2(0, 0), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_752da6();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   imageStore(arg_0_1, ivec2(0, 0), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_752da6();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureStore/77c0ae.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/77c0ae.wgsl.expected.glsl
index 90de71e..e019a35 100644
--- a/test/intrinsics/gen/textureStore/77c0ae.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/77c0ae.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   imageStore(arg_0_1, ivec2(0, 0), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_77c0ae();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   imageStore(arg_0_1, ivec2(0, 0), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_77c0ae();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   imageStore(arg_0_1, ivec2(0, 0), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_77c0ae();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureStore/7cec8d.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/7cec8d.wgsl.expected.glsl
index aaa1cde..e001ffd 100644
--- a/test/intrinsics/gen/textureStore/7cec8d.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/7cec8d.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   imageStore(arg_0_1, ivec3(0, 0, 1), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_7cec8d();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   imageStore(arg_0_1, ivec3(0, 0, 1), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_7cec8d();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   imageStore(arg_0_1, ivec3(0, 0, 1), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_7cec8d();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureStore/7f7fae.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/7f7fae.wgsl.expected.glsl
index ca11490..b9b5608 100644
--- a/test/intrinsics/gen/textureStore/7f7fae.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/7f7fae.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   imageStore(arg_0_1, 1, vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_7f7fae();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -49,19 +36,14 @@
   imageStore(arg_0_1, 1, vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_7f7fae();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -78,20 +60,15 @@
   imageStore(arg_0_1, 1, vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_7f7fae();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
diff --git a/test/intrinsics/gen/textureStore/804942.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/804942.wgsl.expected.glsl
index 96b4132..7d494d6 100644
--- a/test/intrinsics/gen/textureStore/804942.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/804942.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   imageStore(arg_0_1, ivec2(0, 0), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_804942();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   imageStore(arg_0_1, ivec2(0, 0), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_804942();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   imageStore(arg_0_1, ivec2(0, 0), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_804942();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureStore/805dae.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/805dae.wgsl.expected.glsl
index c3a8b69..b13210a 100644
--- a/test/intrinsics/gen/textureStore/805dae.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/805dae.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   imageStore(arg_0_1, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_805dae();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   imageStore(arg_0_1, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_805dae();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   imageStore(arg_0_1, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_805dae();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureStore/83bcc1.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/83bcc1.wgsl.expected.glsl
index 78ab18d..a31201e 100644
--- a/test/intrinsics/gen/textureStore/83bcc1.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/83bcc1.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   imageStore(arg_0_1, 1, uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_83bcc1();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   imageStore(arg_0_1, 1, uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_83bcc1();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   imageStore(arg_0_1, 1, uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_83bcc1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureStore/872747.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/872747.wgsl.expected.glsl
index a0a3487..71a5c41 100644
--- a/test/intrinsics/gen/textureStore/872747.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/872747.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   imageStore(arg_0_1, 1, vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_872747();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   imageStore(arg_0_1, 1, vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_872747();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   imageStore(arg_0_1, 1, vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_872747();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureStore/8e0479.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/8e0479.wgsl.expected.glsl
index 0a9786f..f1a9d8b 100644
--- a/test/intrinsics/gen/textureStore/8e0479.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/8e0479.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   imageStore(arg_0_1, ivec3(0, 0, 1), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_8e0479();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   imageStore(arg_0_1, ivec3(0, 0, 1), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_8e0479();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   imageStore(arg_0_1, ivec3(0, 0, 1), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_8e0479();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureStore/8f71a1.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/8f71a1.wgsl.expected.glsl
index 13f51c8..2861408 100644
--- a/test/intrinsics/gen/textureStore/8f71a1.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/8f71a1.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   imageStore(arg_0_1, ivec3(0, 0, 0), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_8f71a1();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   imageStore(arg_0_1, ivec3(0, 0, 0), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_8f71a1();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   imageStore(arg_0_1, ivec3(0, 0, 0), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_8f71a1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureStore/969534.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/969534.wgsl.expected.glsl
index e72df96..3b70dd9 100644
--- a/test/intrinsics/gen/textureStore/969534.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/969534.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   imageStore(arg_0_1, 1, ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_969534();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'iimage1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -49,19 +36,14 @@
   imageStore(arg_0_1, 1, ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_969534();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'iimage1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -78,20 +60,15 @@
   imageStore(arg_0_1, 1, ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_969534();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'iimage1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
diff --git a/test/intrinsics/gen/textureStore/9a3ecc.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/9a3ecc.wgsl.expected.glsl
index 6cf74ae..3f62bee 100644
--- a/test/intrinsics/gen/textureStore/9a3ecc.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/9a3ecc.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   imageStore(arg_0_1, ivec3(0, 0, 0), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_9a3ecc();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   imageStore(arg_0_1, ivec3(0, 0, 0), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_9a3ecc();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   imageStore(arg_0_1, ivec3(0, 0, 0), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_9a3ecc();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureStore/9d9cd5.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/9d9cd5.wgsl.expected.glsl
index 84d3e1d..6e1b913 100644
--- a/test/intrinsics/gen/textureStore/9d9cd5.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/9d9cd5.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   imageStore(arg_0_1, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_9d9cd5();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   imageStore(arg_0_1, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_9d9cd5();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   imageStore(arg_0_1, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_9d9cd5();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureStore/9e3ec5.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/9e3ec5.wgsl.expected.glsl
index 3c61f8d..26bea3d 100644
--- a/test/intrinsics/gen/textureStore/9e3ec5.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/9e3ec5.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   imageStore(arg_0_1, ivec2(0, 0), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_9e3ec5();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   imageStore(arg_0_1, ivec2(0, 0), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_9e3ec5();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   imageStore(arg_0_1, ivec2(0, 0), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_9e3ec5();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureStore/ac67aa.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/ac67aa.wgsl.expected.glsl
index 9aa0f0a..c2df5bf 100644
--- a/test/intrinsics/gen/textureStore/ac67aa.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/ac67aa.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   imageStore(arg_0_1, ivec3(0, 0, 0), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_ac67aa();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   imageStore(arg_0_1, ivec3(0, 0, 0), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_ac67aa();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   imageStore(arg_0_1, ivec3(0, 0, 0), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_ac67aa();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureStore/b706b1.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/b706b1.wgsl.expected.glsl
index 005a4b0..879b6cc 100644
--- a/test/intrinsics/gen/textureStore/b706b1.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/b706b1.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   imageStore(arg_0_1, ivec3(0, 0, 0), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_b706b1();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   imageStore(arg_0_1, ivec3(0, 0, 0), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_b706b1();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   imageStore(arg_0_1, ivec3(0, 0, 0), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_b706b1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureStore/bbcb7f.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/bbcb7f.wgsl.expected.glsl
index 2444cd8..d7b3b15 100644
--- a/test/intrinsics/gen/textureStore/bbcb7f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/bbcb7f.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   imageStore(arg_0_1, ivec2(0, 0), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_bbcb7f();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   imageStore(arg_0_1, ivec2(0, 0), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_bbcb7f();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   imageStore(arg_0_1, ivec2(0, 0), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_bbcb7f();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureStore/be6e30.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/be6e30.wgsl.expected.glsl
index 191c3d8..63ab0cf 100644
--- a/test/intrinsics/gen/textureStore/be6e30.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/be6e30.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   imageStore(arg_0_1, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_be6e30();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   imageStore(arg_0_1, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_be6e30();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   imageStore(arg_0_1, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_be6e30();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureStore/bf775c.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/bf775c.wgsl.expected.glsl
index cd820c6..2e6251a 100644
--- a/test/intrinsics/gen/textureStore/bf775c.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/bf775c.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   imageStore(arg_0_1, 1, ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_bf775c();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'iimage1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -49,19 +36,14 @@
   imageStore(arg_0_1, 1, ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_bf775c();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'iimage1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -78,20 +60,15 @@
   imageStore(arg_0_1, 1, ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_bf775c();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'iimage1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
diff --git a/test/intrinsics/gen/textureStore/c5af1e.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/c5af1e.wgsl.expected.glsl
index 41ebd4f..0515d1b 100644
--- a/test/intrinsics/gen/textureStore/c5af1e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/c5af1e.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   imageStore(arg_0_1, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_c5af1e();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   imageStore(arg_0_1, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_c5af1e();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   imageStore(arg_0_1, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_c5af1e();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureStore/c863be.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/c863be.wgsl.expected.glsl
index 1b134c9..d3312ab 100644
--- a/test/intrinsics/gen/textureStore/c863be.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/c863be.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   imageStore(arg_0_1, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_c863be();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   imageStore(arg_0_1, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_c863be();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   imageStore(arg_0_1, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_c863be();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureStore/d73b5c.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/d73b5c.wgsl.expected.glsl
index f5e63f8..c9bc003 100644
--- a/test/intrinsics/gen/textureStore/d73b5c.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/d73b5c.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   imageStore(arg_0_1, 1, ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_d73b5c();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   imageStore(arg_0_1, 1, ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_d73b5c();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   imageStore(arg_0_1, 1, ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_d73b5c();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureStore/dd7d81.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/dd7d81.wgsl.expected.glsl
index a03d447..d3fd691 100644
--- a/test/intrinsics/gen/textureStore/dd7d81.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/dd7d81.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   imageStore(arg_0_1, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_dd7d81();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   imageStore(arg_0_1, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_dd7d81();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   imageStore(arg_0_1, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_dd7d81();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureStore/dde364.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/dde364.wgsl.expected.glsl
index 22bef32..c1dc405 100644
--- a/test/intrinsics/gen/textureStore/dde364.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/dde364.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   imageStore(arg_0_1, ivec3(0, 0, 1), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_dde364();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   imageStore(arg_0_1, ivec3(0, 0, 1), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_dde364();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   imageStore(arg_0_1, ivec3(0, 0, 1), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_dde364();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureStore/e885e8.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/e885e8.wgsl.expected.glsl
index fb1e77d..4201b3c 100644
--- a/test/intrinsics/gen/textureStore/e885e8.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/e885e8.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   imageStore(arg_0_1, 1, vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_e885e8();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -49,19 +36,14 @@
   imageStore(arg_0_1, 1, vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_e885e8();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -78,20 +60,15 @@
   imageStore(arg_0_1, 1, vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_e885e8();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
diff --git a/test/intrinsics/gen/textureStore/eb702f.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/eb702f.wgsl.expected.glsl
index 614d7fd..7f1de04 100644
--- a/test/intrinsics/gen/textureStore/eb702f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/eb702f.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   imageStore(arg_0_1, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_eb702f();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   imageStore(arg_0_1, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_eb702f();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   imageStore(arg_0_1, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_eb702f();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureStore/eb78b9.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/eb78b9.wgsl.expected.glsl
index e86a52f..a2a839d 100644
--- a/test/intrinsics/gen/textureStore/eb78b9.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/eb78b9.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   imageStore(arg_0_1, ivec3(0, 0, 0), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_eb78b9();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   imageStore(arg_0_1, ivec3(0, 0, 0), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_eb78b9();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   imageStore(arg_0_1, ivec3(0, 0, 0), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_eb78b9();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureStore/ee6acc.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/ee6acc.wgsl.expected.glsl
index d61f674..ca789f3 100644
--- a/test/intrinsics/gen/textureStore/ee6acc.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/ee6acc.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   imageStore(arg_0_1, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_ee6acc();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   imageStore(arg_0_1, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_ee6acc();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   imageStore(arg_0_1, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_ee6acc();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureStore/ef9f2f.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/ef9f2f.wgsl.expected.glsl
index 9947cb5..2353ba7 100644
--- a/test/intrinsics/gen/textureStore/ef9f2f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/ef9f2f.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   imageStore(arg_0_1, ivec3(0, 0, 0), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_ef9f2f();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   imageStore(arg_0_1, ivec3(0, 0, 0), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_ef9f2f();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   imageStore(arg_0_1, ivec3(0, 0, 0), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_ef9f2f();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureStore/f8dead.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/f8dead.wgsl.expected.glsl
index d8adbad..684867c 100644
--- a/test/intrinsics/gen/textureStore/f8dead.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/f8dead.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   imageStore(arg_0_1, ivec3(0, 0, 0), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_f8dead();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   imageStore(arg_0_1, ivec3(0, 0, 0), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_f8dead();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   imageStore(arg_0_1, ivec3(0, 0, 0), uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_f8dead();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/textureStore/f9be83.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/f9be83.wgsl.expected.glsl
index 7947908..9b80191 100644
--- a/test/intrinsics/gen/textureStore/f9be83.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/f9be83.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   imageStore(arg_0_1, ivec3(0, 0, 1), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_f9be83();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -48,19 +35,14 @@
   imageStore(arg_0_1, ivec3(0, 0, 1), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_f9be83();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
@@ -76,20 +58,15 @@
   imageStore(arg_0_1, ivec3(0, 0, 1), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_f9be83();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/intrinsics/gen/textureStore/fb9a8f.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/fb9a8f.wgsl.expected.glsl
index 4c10233..bdcf537 100644
--- a/test/intrinsics/gen/textureStore/fb9a8f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/fb9a8f.wgsl.expected.glsl
@@ -8,31 +8,18 @@
   imageStore(arg_0_1, 1, uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_fb9a8f();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'uimage1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -49,19 +36,14 @@
   imageStore(arg_0_1, 1, uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_fb9a8f();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'uimage1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
@@ -78,20 +60,15 @@
   imageStore(arg_0_1, 1, uvec4(0u, 0u, 0u, 0u));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_fb9a8f();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'uimage1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
diff --git a/test/intrinsics/gen/textureStore/fbf53f.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/fbf53f.wgsl.expected.glsl
index 1a0cd07..3fbbf80 100644
--- a/test/intrinsics/gen/textureStore/fbf53f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/textureStore/fbf53f.wgsl.expected.glsl
@@ -6,31 +6,18 @@
   imageStore(arg_0_1, ivec3(0, 0, 1), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   textureStore_fbf53f();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -39,19 +26,14 @@
   imageStore(arg_0_1, ivec3(0, 0, 1), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   textureStore_fbf53f();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -60,17 +42,12 @@
   imageStore(arg_0_1, ivec3(0, 0, 1), ivec4(0, 0, 0, 0));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   textureStore_fbf53f();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/transpose/2585cd.wgsl.expected.glsl b/test/intrinsics/gen/transpose/2585cd.wgsl.expected.glsl
index cdac204..7bae060 100644
--- a/test/intrinsics/gen/transpose/2585cd.wgsl.expected.glsl
+++ b/test/intrinsics/gen/transpose/2585cd.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   mat3x4 res = transpose(mat4x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   transpose_2585cd();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   mat3x4 res = transpose(mat4x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   transpose_2585cd();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   mat3x4 res = transpose(mat4x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   transpose_2585cd();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/transpose/31d679.wgsl.expected.glsl b/test/intrinsics/gen/transpose/31d679.wgsl.expected.glsl
index 006212b..d4d80d9 100644
--- a/test/intrinsics/gen/transpose/31d679.wgsl.expected.glsl
+++ b/test/intrinsics/gen/transpose/31d679.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   mat2 res = transpose(mat2(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   transpose_31d679();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   mat2 res = transpose(mat2(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   transpose_31d679();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   mat2 res = transpose(mat2(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   transpose_31d679();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/transpose/31e37e.wgsl.expected.glsl b/test/intrinsics/gen/transpose/31e37e.wgsl.expected.glsl
index 0b22417..881af10 100644
--- a/test/intrinsics/gen/transpose/31e37e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/transpose/31e37e.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   mat2x4 res = transpose(mat4x2(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   transpose_31e37e();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   mat2x4 res = transpose(mat4x2(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   transpose_31e37e();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   mat2x4 res = transpose(mat4x2(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   transpose_31e37e();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/transpose/4ce359.wgsl.expected.glsl b/test/intrinsics/gen/transpose/4ce359.wgsl.expected.glsl
index 56568c4..a476a04 100644
--- a/test/intrinsics/gen/transpose/4ce359.wgsl.expected.glsl
+++ b/test/intrinsics/gen/transpose/4ce359.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   mat4x2 res = transpose(mat2x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   transpose_4ce359();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   mat4x2 res = transpose(mat2x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   transpose_4ce359();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   mat4x2 res = transpose(mat2x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   transpose_4ce359();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/transpose/4dc9a1.wgsl.expected.glsl b/test/intrinsics/gen/transpose/4dc9a1.wgsl.expected.glsl
index 4a9f2d1..e981ed7 100644
--- a/test/intrinsics/gen/transpose/4dc9a1.wgsl.expected.glsl
+++ b/test/intrinsics/gen/transpose/4dc9a1.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   mat3x2 res = transpose(mat2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   transpose_4dc9a1();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   mat3x2 res = transpose(mat2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   transpose_4dc9a1();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   mat3x2 res = transpose(mat2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   transpose_4dc9a1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/transpose/854336.wgsl.expected.glsl b/test/intrinsics/gen/transpose/854336.wgsl.expected.glsl
index 10e90c4..5daee5d 100644
--- a/test/intrinsics/gen/transpose/854336.wgsl.expected.glsl
+++ b/test/intrinsics/gen/transpose/854336.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   mat3 res = transpose(mat3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   transpose_854336();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   mat3 res = transpose(mat3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   transpose_854336();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   mat3 res = transpose(mat3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   transpose_854336();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/transpose/c1b600.wgsl.expected.glsl b/test/intrinsics/gen/transpose/c1b600.wgsl.expected.glsl
index 6f8842b..b905fd6 100644
--- a/test/intrinsics/gen/transpose/c1b600.wgsl.expected.glsl
+++ b/test/intrinsics/gen/transpose/c1b600.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   mat4 res = transpose(mat4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   transpose_c1b600();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   mat4 res = transpose(mat4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   transpose_c1b600();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   mat4 res = transpose(mat4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   transpose_c1b600();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/transpose/d8f8ba.wgsl.expected.glsl b/test/intrinsics/gen/transpose/d8f8ba.wgsl.expected.glsl
index 99f51a5..86c06ad 100644
--- a/test/intrinsics/gen/transpose/d8f8ba.wgsl.expected.glsl
+++ b/test/intrinsics/gen/transpose/d8f8ba.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   mat4x3 res = transpose(mat3x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   transpose_d8f8ba();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   mat4x3 res = transpose(mat3x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   transpose_d8f8ba();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   mat4x3 res = transpose(mat3x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   transpose_d8f8ba();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/transpose/ed4bdc.wgsl.expected.glsl b/test/intrinsics/gen/transpose/ed4bdc.wgsl.expected.glsl
index d608809..338112d 100644
--- a/test/intrinsics/gen/transpose/ed4bdc.wgsl.expected.glsl
+++ b/test/intrinsics/gen/transpose/ed4bdc.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   mat2x3 res = transpose(mat3x2(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   transpose_ed4bdc();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   mat2x3 res = transpose(mat3x2(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   transpose_ed4bdc();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   mat2x3 res = transpose(mat3x2(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   transpose_ed4bdc();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/trunc/562d05.wgsl.expected.glsl b/test/intrinsics/gen/trunc/562d05.wgsl.expected.glsl
index 7c0765d..64d05c9 100644
--- a/test/intrinsics/gen/trunc/562d05.wgsl.expected.glsl
+++ b/test/intrinsics/gen/trunc/562d05.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec3 res = trunc(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   trunc_562d05();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec3 res = trunc(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   trunc_562d05();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec3 res = trunc(vec3(0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   trunc_562d05();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/trunc/e183aa.wgsl.expected.glsl b/test/intrinsics/gen/trunc/e183aa.wgsl.expected.glsl
index dedadcc..3241d0b 100644
--- a/test/intrinsics/gen/trunc/e183aa.wgsl.expected.glsl
+++ b/test/intrinsics/gen/trunc/e183aa.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec4 res = trunc(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   trunc_e183aa();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec4 res = trunc(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   trunc_e183aa();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec4 res = trunc(vec4(0.0f, 0.0f, 0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   trunc_e183aa();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/trunc/eb83df.wgsl.expected.glsl b/test/intrinsics/gen/trunc/eb83df.wgsl.expected.glsl
index 7ebd607..160d8cf 100644
--- a/test/intrinsics/gen/trunc/eb83df.wgsl.expected.glsl
+++ b/test/intrinsics/gen/trunc/eb83df.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   float res = trunc(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   trunc_eb83df();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   float res = trunc(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   trunc_eb83df();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   float res = trunc(1.0f);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   trunc_eb83df();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/trunc/f370d3.wgsl.expected.glsl b/test/intrinsics/gen/trunc/f370d3.wgsl.expected.glsl
index feddb14..c3e3eee 100644
--- a/test/intrinsics/gen/trunc/f370d3.wgsl.expected.glsl
+++ b/test/intrinsics/gen/trunc/f370d3.wgsl.expected.glsl
@@ -5,31 +5,18 @@
   vec2 res = trunc(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   trunc_f370d3();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -37,19 +24,14 @@
   vec2 res = trunc(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   trunc_f370d3();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -57,17 +39,12 @@
   vec2 res = trunc(vec2(0.0f, 0.0f));
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   trunc_f370d3();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/gen/unpack2x16float/32a5cf.wgsl.expected.glsl b/test/intrinsics/gen/unpack2x16float/32a5cf.wgsl.expected.glsl
index 7dfd286..e3911b0 100644
--- a/test/intrinsics/gen/unpack2x16float/32a5cf.wgsl.expected.glsl
+++ b/test/intrinsics/gen/unpack2x16float/32a5cf.wgsl.expected.glsl
@@ -13,31 +13,18 @@
   vec2 res = tint_unpack2x16float(1u);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   unpack2x16float_32a5cf();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp highp uint' and a right operand of type ' const int' (or there is no acceptable conversion)
 ERROR: 0:6: '' : compilation terminated 
@@ -58,19 +45,14 @@
   vec2 res = tint_unpack2x16float(1u);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   unpack2x16float_32a5cf();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp mediump uint' and a right operand of type ' const int' (or there is no acceptable conversion)
 ERROR: 0:6: '' : compilation terminated 
@@ -91,20 +73,15 @@
   vec2 res = tint_unpack2x16float(1u);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   unpack2x16float_32a5cf();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp highp uint' and a right operand of type ' const int' (or there is no acceptable conversion)
 ERROR: 0:6: '' : compilation terminated 
diff --git a/test/intrinsics/gen/unpack2x16snorm/b4aea6.wgsl.expected.glsl b/test/intrinsics/gen/unpack2x16snorm/b4aea6.wgsl.expected.glsl
index 70c2c61..ea62982 100644
--- a/test/intrinsics/gen/unpack2x16snorm/b4aea6.wgsl.expected.glsl
+++ b/test/intrinsics/gen/unpack2x16snorm/b4aea6.wgsl.expected.glsl
@@ -14,31 +14,18 @@
   vec2 res = tint_unpack2x16snorm(1u);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   unpack2x16snorm_b4aea6();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'int2' : undeclared identifier 
 ERROR: 0:6: '' : compilation terminated 
@@ -60,19 +47,14 @@
   vec2 res = tint_unpack2x16snorm(1u);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   unpack2x16snorm_b4aea6();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'int2' : undeclared identifier 
 ERROR: 0:6: '' : compilation terminated 
@@ -94,20 +76,15 @@
   vec2 res = tint_unpack2x16snorm(1u);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   unpack2x16snorm_b4aea6();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'int2' : undeclared identifier 
 ERROR: 0:6: '' : compilation terminated 
diff --git a/test/intrinsics/gen/unpack2x16unorm/7699c0.wgsl.expected.glsl b/test/intrinsics/gen/unpack2x16unorm/7699c0.wgsl.expected.glsl
index 7b78901..6c41b74 100644
--- a/test/intrinsics/gen/unpack2x16unorm/7699c0.wgsl.expected.glsl
+++ b/test/intrinsics/gen/unpack2x16unorm/7699c0.wgsl.expected.glsl
@@ -14,31 +14,18 @@
   vec2 res = tint_unpack2x16unorm(1u);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   unpack2x16unorm_7699c0();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'uint2' : undeclared identifier 
 ERROR: 0:6: '' : compilation terminated 
@@ -60,19 +47,14 @@
   vec2 res = tint_unpack2x16unorm(1u);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   unpack2x16unorm_7699c0();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'uint2' : undeclared identifier 
 ERROR: 0:6: '' : compilation terminated 
@@ -94,20 +76,15 @@
   vec2 res = tint_unpack2x16unorm(1u);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   unpack2x16unorm_7699c0();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'uint2' : undeclared identifier 
 ERROR: 0:6: '' : compilation terminated 
diff --git a/test/intrinsics/gen/unpack4x8snorm/523fb3.wgsl.expected.glsl b/test/intrinsics/gen/unpack4x8snorm/523fb3.wgsl.expected.glsl
index 6a7ff11..8f3ec12 100644
--- a/test/intrinsics/gen/unpack4x8snorm/523fb3.wgsl.expected.glsl
+++ b/test/intrinsics/gen/unpack4x8snorm/523fb3.wgsl.expected.glsl
@@ -14,31 +14,18 @@
   vec4 res = tint_unpack4x8snorm(1u);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   unpack4x8snorm_523fb3();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'int4' : undeclared identifier 
 ERROR: 0:6: '' : compilation terminated 
@@ -60,19 +47,14 @@
   vec4 res = tint_unpack4x8snorm(1u);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   unpack4x8snorm_523fb3();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'int4' : undeclared identifier 
 ERROR: 0:6: '' : compilation terminated 
@@ -94,20 +76,15 @@
   vec4 res = tint_unpack4x8snorm(1u);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   unpack4x8snorm_523fb3();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'int4' : undeclared identifier 
 ERROR: 0:6: '' : compilation terminated 
diff --git a/test/intrinsics/gen/unpack4x8unorm/750c74.wgsl.expected.glsl b/test/intrinsics/gen/unpack4x8unorm/750c74.wgsl.expected.glsl
index ab15ddd..369b226 100644
--- a/test/intrinsics/gen/unpack4x8unorm/750c74.wgsl.expected.glsl
+++ b/test/intrinsics/gen/unpack4x8unorm/750c74.wgsl.expected.glsl
@@ -14,31 +14,18 @@
   vec4 res = tint_unpack4x8unorm(1u);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-vec4 vertex_main_inner() {
+vec4 vertex_main() {
   unpack4x8unorm_750c74();
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol vertex_main() {
-  vec4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'uint4' : undeclared identifier 
 ERROR: 0:6: '' : compilation terminated 
@@ -60,19 +47,14 @@
   vec4 res = tint_unpack4x8unorm(1u);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
 void fragment_main() {
   unpack4x8unorm_750c74();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'uint4' : undeclared identifier 
 ERROR: 0:6: '' : compilation terminated 
@@ -94,20 +76,15 @@
   vec4 res = tint_unpack4x8unorm(1u);
 }
 
-struct tint_symbol {
-  vec4 value;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   unpack4x8unorm_750c74();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'uint4' : undeclared identifier 
 ERROR: 0:6: '' : compilation terminated 
diff --git a/test/intrinsics/gen/workgroupBarrier/a17f7f.wgsl.expected.glsl b/test/intrinsics/gen/workgroupBarrier/a17f7f.wgsl.expected.glsl
index 0ce18a6..71ce5cb 100644
--- a/test/intrinsics/gen/workgroupBarrier/a17f7f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/workgroupBarrier/a17f7f.wgsl.expected.glsl
@@ -5,13 +5,12 @@
   memoryBarrierShared();
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   workgroupBarrier_a17f7f();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/ignore/call.wgsl.expected.glsl b/test/intrinsics/ignore/call.wgsl.expected.glsl
index d74ad98..e86c541 100644
--- a/test/intrinsics/ignore/call.wgsl.expected.glsl
+++ b/test/intrinsics/ignore/call.wgsl.expected.glsl
@@ -9,13 +9,12 @@
   return ((a * b) + c);
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   f(1, 2, 3);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/intrinsics/ignore/runtime_array.wgsl.expected.glsl b/test/intrinsics/ignore/runtime_array.wgsl.expected.glsl
index 679f1cb..8061643 100644
--- a/test/intrinsics/ignore/runtime_array.wgsl.expected.glsl
+++ b/test/intrinsics/ignore/runtime_array.wgsl.expected.glsl
@@ -8,13 +8,12 @@
 layout(binding = 0) buffer S_1 {
   int arr[];
 } s;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   s.arr;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/intrinsics/ignore/storage_buffer.wgsl.expected.glsl b/test/intrinsics/ignore/storage_buffer.wgsl.expected.glsl
index 42d9060..1504315 100644
--- a/test/intrinsics/ignore/storage_buffer.wgsl.expected.glsl
+++ b/test/intrinsics/ignore/storage_buffer.wgsl.expected.glsl
@@ -16,14 +16,13 @@
 layout(binding = 0) buffer S_1 {
   int i;
 } s;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   s;
   s.i;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/intrinsics/ignore/uniform_buffer.wgsl.expected.glsl b/test/intrinsics/ignore/uniform_buffer.wgsl.expected.glsl
index 1bd914a..91b4369 100644
--- a/test/intrinsics/ignore/uniform_buffer.wgsl.expected.glsl
+++ b/test/intrinsics/ignore/uniform_buffer.wgsl.expected.glsl
@@ -17,14 +17,13 @@
   int i;
 } u;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   u;
   u.i;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/intrinsics/modf.wgsl.expected.glsl b/test/intrinsics/modf.wgsl.expected.glsl
index b258447..dbb6f56 100644
--- a/test/intrinsics/modf.wgsl.expected.glsl
+++ b/test/intrinsics/modf.wgsl.expected.glsl
@@ -16,18 +16,17 @@
 }
 
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   modf_result res = tint_modf(1.230000019f);
   float tint_symbol_1 = res.fract;
   float whole = res.whole;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:12: '{ } style initializers' : not supported with this profile: es
 ERROR: 0:12: '' : compilation terminated 
diff --git a/test/intrinsics/radians.spvasm.expected.glsl b/test/intrinsics/radians.spvasm.expected.glsl
index 9941550..891cca0 100644
--- a/test/intrinsics/radians.spvasm.expected.glsl
+++ b/test/intrinsics/radians.spvasm.expected.glsl
@@ -14,13 +14,12 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/intrinsics/repeated_use.wgsl.expected.glsl b/test/intrinsics/repeated_use.wgsl.expected.glsl
index 78014c0..f759523 100644
--- a/test/intrinsics/repeated_use.wgsl.expected.glsl
+++ b/test/intrinsics/repeated_use.wgsl.expected.glsl
@@ -76,7 +76,6 @@
 }
 
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   tint_isNormal(vec4(0.0f, 0.0f, 0.0f, 0.0f));
   tint_isNormal(vec4(1.0f));
@@ -90,13 +89,13 @@
   tint_isNormal_3(1.0f);
   tint_isNormal_3(2.0f);
   tint_isNormal_3(3.0f);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'uint4' : undeclared identifier 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/intrinsics/textureDimensions/depth_ms.spvasm.expected.glsl b/test/intrinsics/textureDimensions/depth_ms.spvasm.expected.glsl
index 1f3b12f..fdf94c2 100644
--- a/test/intrinsics/textureDimensions/depth_ms.spvasm.expected.glsl
+++ b/test/intrinsics/textureDimensions/depth_ms.spvasm.expected.glsl
@@ -25,32 +25,19 @@
   vec4 tint_symbol_1_1;
 };
 
-struct tint_symbol_3 {
-  vec4 tint_symbol_1_1;
-};
-
-vertex_main_out vertex_main_inner() {
+vertex_main_out vertex_main() {
   vertex_main_1();
-  vertex_main_out tint_symbol_4 = vertex_main_out(tint_symbol_1);
-  return tint_symbol_4;
+  vertex_main_out tint_symbol_3 = vertex_main_out(tint_symbol_1);
+  return tint_symbol_3;
 }
 
-tint_symbol_3 vertex_main() {
-  vertex_main_out inner_result = vertex_main_inner();
-  tint_symbol_3 wrapper_result = tint_symbol_3(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.tint_symbol_1_1 = inner_result.tint_symbol_1_1;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol_3 outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.tint_symbol_1_1;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vertex_main_out inner_result = vertex_main();
+  gl_Position = inner_result.tint_symbol_1_1;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -66,10 +53,6 @@
   vec4 tint_symbol_1_1;
 };
 
-struct tint_symbol_3 {
-  vec4 tint_symbol_1_1;
-};
-
 void fragment_main_1() {
   textureDimensions_f60bdb();
   return;
@@ -77,13 +60,12 @@
 
 void fragment_main() {
   fragment_main_1();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -99,22 +81,17 @@
   vec4 tint_symbol_1_1;
 };
 
-struct tint_symbol_3 {
-  vec4 tint_symbol_1_1;
-};
-
 void compute_main_1() {
   textureDimensions_f60bdb();
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   compute_main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/textureGather/f32/alpha.wgsl.expected.glsl b/test/intrinsics/textureGather/f32/alpha.wgsl.expected.glsl
index a33d0bd..c49cedf 100644
--- a/test/intrinsics/textureGather/f32/alpha.wgsl.expected.glsl
+++ b/test/intrinsics/textureGather/f32/alpha.wgsl.expected.glsl
@@ -5,10 +5,9 @@
 
 void tint_symbol() {
   vec4 res = textureGather(t_s, vec2(0.0f, 0.0f), 3);
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/intrinsics/textureGather/f32/blue.wgsl.expected.glsl b/test/intrinsics/textureGather/f32/blue.wgsl.expected.glsl
index 924fd2c..af5fc44 100644
--- a/test/intrinsics/textureGather/f32/blue.wgsl.expected.glsl
+++ b/test/intrinsics/textureGather/f32/blue.wgsl.expected.glsl
@@ -5,10 +5,9 @@
 
 void tint_symbol() {
   vec4 res = textureGather(t_s, vec2(0.0f, 0.0f), 2);
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/intrinsics/textureGather/f32/green.wgsl.expected.glsl b/test/intrinsics/textureGather/f32/green.wgsl.expected.glsl
index cc9b7d1..d0d5dbe 100644
--- a/test/intrinsics/textureGather/f32/green.wgsl.expected.glsl
+++ b/test/intrinsics/textureGather/f32/green.wgsl.expected.glsl
@@ -5,10 +5,9 @@
 
 void tint_symbol() {
   vec4 res = textureGather(t_s, vec2(0.0f, 0.0f), 1);
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/intrinsics/textureGather/f32/red.wgsl.expected.glsl b/test/intrinsics/textureGather/f32/red.wgsl.expected.glsl
index 231dce5..c1a2571 100644
--- a/test/intrinsics/textureGather/f32/red.wgsl.expected.glsl
+++ b/test/intrinsics/textureGather/f32/red.wgsl.expected.glsl
@@ -5,10 +5,9 @@
 
 void tint_symbol() {
   vec4 res = textureGather(t_s, vec2(0.0f, 0.0f), 0);
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/intrinsics/textureGather/i32/alpha.wgsl.expected.glsl b/test/intrinsics/textureGather/i32/alpha.wgsl.expected.glsl
index 320f50f..5215de2 100644
--- a/test/intrinsics/textureGather/i32/alpha.wgsl.expected.glsl
+++ b/test/intrinsics/textureGather/i32/alpha.wgsl.expected.glsl
@@ -5,10 +5,9 @@
 
 void tint_symbol() {
   ivec4 res = textureGather(t_s, vec2(0.0f, 0.0f), 3);
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/intrinsics/textureGather/i32/blue.wgsl.expected.glsl b/test/intrinsics/textureGather/i32/blue.wgsl.expected.glsl
index 200e7e5..1efabfab 100644
--- a/test/intrinsics/textureGather/i32/blue.wgsl.expected.glsl
+++ b/test/intrinsics/textureGather/i32/blue.wgsl.expected.glsl
@@ -5,10 +5,9 @@
 
 void tint_symbol() {
   ivec4 res = textureGather(t_s, vec2(0.0f, 0.0f), 2);
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/intrinsics/textureGather/i32/green.wgsl.expected.glsl b/test/intrinsics/textureGather/i32/green.wgsl.expected.glsl
index 02ab2d5..ea50a62 100644
--- a/test/intrinsics/textureGather/i32/green.wgsl.expected.glsl
+++ b/test/intrinsics/textureGather/i32/green.wgsl.expected.glsl
@@ -5,10 +5,9 @@
 
 void tint_symbol() {
   ivec4 res = textureGather(t_s, vec2(0.0f, 0.0f), 1);
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/intrinsics/textureGather/i32/red.wgsl.expected.glsl b/test/intrinsics/textureGather/i32/red.wgsl.expected.glsl
index 6c7d9a0..3013d47 100644
--- a/test/intrinsics/textureGather/i32/red.wgsl.expected.glsl
+++ b/test/intrinsics/textureGather/i32/red.wgsl.expected.glsl
@@ -5,10 +5,9 @@
 
 void tint_symbol() {
   ivec4 res = textureGather(t_s, vec2(0.0f, 0.0f), 0);
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/intrinsics/textureGather/u32/alpha.wgsl.expected.glsl b/test/intrinsics/textureGather/u32/alpha.wgsl.expected.glsl
index 58ca174..087d1a2 100644
--- a/test/intrinsics/textureGather/u32/alpha.wgsl.expected.glsl
+++ b/test/intrinsics/textureGather/u32/alpha.wgsl.expected.glsl
@@ -5,10 +5,9 @@
 
 void tint_symbol() {
   uvec4 res = textureGather(t_s, vec2(0.0f, 0.0f), 3);
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/intrinsics/textureGather/u32/blue.wgsl.expected.glsl b/test/intrinsics/textureGather/u32/blue.wgsl.expected.glsl
index ec6b81a..3329a19 100644
--- a/test/intrinsics/textureGather/u32/blue.wgsl.expected.glsl
+++ b/test/intrinsics/textureGather/u32/blue.wgsl.expected.glsl
@@ -5,10 +5,9 @@
 
 void tint_symbol() {
   uvec4 res = textureGather(t_s, vec2(0.0f, 0.0f), 2);
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/intrinsics/textureGather/u32/green.wgsl.expected.glsl b/test/intrinsics/textureGather/u32/green.wgsl.expected.glsl
index 235a063..832b1d2 100644
--- a/test/intrinsics/textureGather/u32/green.wgsl.expected.glsl
+++ b/test/intrinsics/textureGather/u32/green.wgsl.expected.glsl
@@ -5,10 +5,9 @@
 
 void tint_symbol() {
   uvec4 res = textureGather(t_s, vec2(0.0f, 0.0f), 1);
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/intrinsics/textureGather/u32/red.wgsl.expected.glsl b/test/intrinsics/textureGather/u32/red.wgsl.expected.glsl
index 8791f6e..df0ef7b 100644
--- a/test/intrinsics/textureGather/u32/red.wgsl.expected.glsl
+++ b/test/intrinsics/textureGather/u32/red.wgsl.expected.glsl
@@ -5,10 +5,9 @@
 
 void tint_symbol() {
   uvec4 res = textureGather(t_s, vec2(0.0f, 0.0f), 0);
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/intrinsics/textureLoad/depth_ms.spvasm.expected.glsl b/test/intrinsics/textureLoad/depth_ms.spvasm.expected.glsl
index d492ec7..639f6c4 100644
--- a/test/intrinsics/textureLoad/depth_ms.spvasm.expected.glsl
+++ b/test/intrinsics/textureLoad/depth_ms.spvasm.expected.glsl
@@ -25,32 +25,19 @@
   vec4 tint_symbol_1_1;
 };
 
-struct tint_symbol_3 {
-  vec4 tint_symbol_1_1;
-};
-
-vertex_main_out vertex_main_inner() {
+vertex_main_out vertex_main() {
   vertex_main_1();
-  vertex_main_out tint_symbol_4 = vertex_main_out(tint_symbol_1);
-  return tint_symbol_4;
+  vertex_main_out tint_symbol_3 = vertex_main_out(tint_symbol_1);
+  return tint_symbol_3;
 }
 
-tint_symbol_3 vertex_main() {
-  vertex_main_out inner_result = vertex_main_inner();
-  tint_symbol_3 wrapper_result = tint_symbol_3(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.tint_symbol_1_1 = inner_result.tint_symbol_1_1;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol_3 outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.tint_symbol_1_1;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vertex_main_out inner_result = vertex_main();
+  gl_Position = inner_result.tint_symbol_1_1;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -66,10 +53,6 @@
   vec4 tint_symbol_1_1;
 };
 
-struct tint_symbol_3 {
-  vec4 tint_symbol_1_1;
-};
-
 void fragment_main_1() {
   textureLoad_6273b1();
   return;
@@ -77,13 +60,12 @@
 
 void fragment_main() {
   fragment_main_1();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -99,22 +81,17 @@
   vec4 tint_symbol_1_1;
 };
 
-struct tint_symbol_3 {
-  vec4 tint_symbol_1_1;
-};
-
 void compute_main_1() {
   textureLoad_6273b1();
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   compute_main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
diff --git a/test/intrinsics/textureNumSamples/depth_ms.spvasm.expected.glsl b/test/intrinsics/textureNumSamples/depth_ms.spvasm.expected.glsl
index 037730f..d0f8767 100644
--- a/test/intrinsics/textureNumSamples/depth_ms.spvasm.expected.glsl
+++ b/test/intrinsics/textureNumSamples/depth_ms.spvasm.expected.glsl
@@ -27,32 +27,19 @@
   vec4 tint_symbol_1_1;
 };
 
-struct tint_symbol_3 {
-  vec4 tint_symbol_1_1;
-};
-
-vertex_main_out vertex_main_inner() {
+vertex_main_out vertex_main() {
   vertex_main_1();
-  vertex_main_out tint_symbol_4 = vertex_main_out(tint_symbol_1);
-  return tint_symbol_4;
+  vertex_main_out tint_symbol_3 = vertex_main_out(tint_symbol_1);
+  return tint_symbol_3;
 }
 
-tint_symbol_3 vertex_main() {
-  vertex_main_out inner_result = vertex_main_inner();
-  tint_symbol_3 wrapper_result = tint_symbol_3(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.tint_symbol_1_1 = inner_result.tint_symbol_1_1;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol_3 outputs;
-  outputs = vertex_main();
-  gl_Position = outputs.tint_symbol_1_1;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vertex_main_out inner_result = vertex_main();
+  gl_Position = inner_result.tint_symbol_1_1;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:8: 'textureSamples' : no matching overloaded function found 
 ERROR: 0:8: '=' :  cannot convert from ' const float' to ' temp highp int'
@@ -76,10 +63,6 @@
   vec4 tint_symbol_1_1;
 };
 
-struct tint_symbol_3 {
-  vec4 tint_symbol_1_1;
-};
-
 void fragment_main_1() {
   textureNumSamples_a3c8a0();
   return;
@@ -87,13 +70,12 @@
 
 void fragment_main() {
   fragment_main_1();
-  return;
 }
 
 void main() {
   fragment_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: 'textureSamples' : no matching overloaded function found 
 ERROR: 0:7: '=' :  cannot convert from ' const float' to ' temp mediump int'
@@ -117,25 +99,20 @@
   vec4 tint_symbol_1_1;
 };
 
-struct tint_symbol_3 {
-  vec4 tint_symbol_1_1;
-};
-
 void compute_main_1() {
   textureNumSamples_a3c8a0();
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void compute_main() {
   compute_main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   compute_main();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: 'textureSamples' : no matching overloaded function found 
 ERROR: 0:7: '=' :  cannot convert from ' const float' to ' temp highp int'
diff --git a/test/layout/storage/mat2x2/f32.wgsl.expected.glsl b/test/layout/storage/mat2x2/f32.wgsl.expected.glsl
index e5f8b53..931fe1d 100644
--- a/test/layout/storage/mat2x2/f32.wgsl.expected.glsl
+++ b/test/layout/storage/mat2x2/f32.wgsl.expected.glsl
@@ -8,14 +8,13 @@
 layout(binding = 0) buffer SSBO_1 {
   mat2 m;
 } ssbo;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   mat2 v = ssbo.m;
   ssbo.m = v;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/layout/storage/mat2x2/stride/16.spvasm.expected.glsl b/test/layout/storage/mat2x2/stride/16.spvasm.expected.glsl
index e125413..aca2256 100644
--- a/test/layout/storage/mat2x2/stride/16.spvasm.expected.glsl
+++ b/test/layout/storage/mat2x2/stride/16.spvasm.expected.glsl
@@ -27,13 +27,12 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   f_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/let/global/global.wgsl.expected.glsl b/test/let/global/global.wgsl.expected.glsl
index ec327ce..797dbaf 100644
--- a/test/let/global/global.wgsl.expected.glsl
+++ b/test/let/global/global.wgsl.expected.glsl
@@ -1,29 +1,17 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 value;
 struct MyStruct {
   float f1;
 };
 
-struct tint_symbol_1 {
-  vec4 value;
-};
-
-vec4 tint_symbol_inner() {
+vec4 tint_symbol() {
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol_1 tint_symbol() {
-  vec4 inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 value;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  value = outputs.value;
+  vec4 inner_result = tint_symbol();
+  value = inner_result;
+  return;
 }
-
diff --git a/test/let/inferred/function.wgsl.expected.glsl b/test/let/inferred/function.wgsl.expected.glsl
index ec327ce..797dbaf 100644
--- a/test/let/inferred/function.wgsl.expected.glsl
+++ b/test/let/inferred/function.wgsl.expected.glsl
@@ -1,29 +1,17 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 value;
 struct MyStruct {
   float f1;
 };
 
-struct tint_symbol_1 {
-  vec4 value;
-};
-
-vec4 tint_symbol_inner() {
+vec4 tint_symbol() {
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol_1 tint_symbol() {
-  vec4 inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 value;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  value = outputs.value;
+  vec4 inner_result = tint_symbol();
+  value = inner_result;
+  return;
 }
-
diff --git a/test/loops/continue_in_switch.wgsl.expected.glsl b/test/loops/continue_in_switch.wgsl.expected.glsl
index 2b26425..3435a15 100644
--- a/test/loops/continue_in_switch.wgsl.expected.glsl
+++ b/test/loops/continue_in_switch.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   {
     for(int i = 0; (i < 4); i = (i + 1)) {
@@ -16,10 +15,10 @@
       }
     }
   }
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/loops/loop.wgsl.expected.glsl b/test/loops/loop.wgsl.expected.glsl
index 81b6873..04f42c4 100644
--- a/test/loops/loop.wgsl.expected.glsl
+++ b/test/loops/loop.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 int f() {
   int i = 0;
   while (true) {
diff --git a/test/loops/loop_with_continuing.wgsl.expected.glsl b/test/loops/loop_with_continuing.wgsl.expected.glsl
index 768d31a..d4b52d3 100644
--- a/test/loops/loop_with_continuing.wgsl.expected.glsl
+++ b/test/loops/loop_with_continuing.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 int f() {
   int i = 0;
   while (true) {
diff --git a/test/loops/nested_loops.wgsl.expected.glsl b/test/loops/nested_loops.wgsl.expected.glsl
index 56fcb75..50c0bfc 100644
--- a/test/loops/nested_loops.wgsl.expected.glsl
+++ b/test/loops/nested_loops.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 int f() {
   int i = 0;
   int j = 0;
diff --git a/test/loops/nested_loops_with_continuing.wgsl.expected.glsl b/test/loops/nested_loops_with_continuing.wgsl.expected.glsl
index 67fbaf7..b096d76 100644
--- a/test/loops/nested_loops_with_continuing.wgsl.expected.glsl
+++ b/test/loops/nested_loops_with_continuing.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 int f() {
   int i = 0;
   int j = 0;
diff --git a/test/ptr_ref/access/matrix.spvasm.expected.glsl b/test/ptr_ref/access/matrix.spvasm.expected.glsl
index f6f2359..6c65c77 100644
--- a/test/ptr_ref/access/matrix.spvasm.expected.glsl
+++ b/test/ptr_ref/access/matrix.spvasm.expected.glsl
@@ -8,13 +8,12 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/ptr_ref/access/matrix.wgsl.expected.glsl b/test/ptr_ref/access/matrix.wgsl.expected.glsl
index f08f729..f6caf8b 100644
--- a/test/ptr_ref/access/matrix.wgsl.expected.glsl
+++ b/test/ptr_ref/access/matrix.wgsl.expected.glsl
@@ -1,14 +1,13 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   mat3 m = mat3(vec3(1.0f, 2.0f, 3.0f), vec3(4.0f, 5.0f, 6.0f), vec3(7.0f, 8.0f, 9.0f));
   m[1] = vec3(5.0f, 5.0f, 5.0f);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/ptr_ref/copy/ptr_copy.spvasm.expected.glsl b/test/ptr_ref/copy/ptr_copy.spvasm.expected.glsl
index 9fa5aa1..3a58404 100644
--- a/test/ptr_ref/copy/ptr_copy.spvasm.expected.glsl
+++ b/test/ptr_ref/copy/ptr_copy.spvasm.expected.glsl
@@ -6,13 +6,12 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/ptr_ref/load/global/i32.spvasm.expected.glsl b/test/ptr_ref/load/global/i32.spvasm.expected.glsl
index 0d72c7d..7835a4e 100644
--- a/test/ptr_ref/load/global/i32.spvasm.expected.glsl
+++ b/test/ptr_ref/load/global/i32.spvasm.expected.glsl
@@ -7,13 +7,12 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/ptr_ref/load/global/i32.wgsl.expected.glsl b/test/ptr_ref/load/global/i32.wgsl.expected.glsl
index 42d0134..81649f5 100644
--- a/test/ptr_ref/load/global/i32.wgsl.expected.glsl
+++ b/test/ptr_ref/load/global/i32.wgsl.expected.glsl
@@ -2,13 +2,12 @@
 precision mediump float;
 
 int I = 0;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   int use = (I + 1);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/ptr_ref/load/global/struct_field.spvasm.expected.glsl b/test/ptr_ref/load/global/struct_field.spvasm.expected.glsl
index e3cb845..c346181 100644
--- a/test/ptr_ref/load/global/struct_field.spvasm.expected.glsl
+++ b/test/ptr_ref/load/global/struct_field.spvasm.expected.glsl
@@ -13,13 +13,12 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/ptr_ref/load/global/struct_field.wgsl.expected.glsl b/test/ptr_ref/load/global/struct_field.wgsl.expected.glsl
index 5248de8..21fe14c 100644
--- a/test/ptr_ref/load/global/struct_field.wgsl.expected.glsl
+++ b/test/ptr_ref/load/global/struct_field.wgsl.expected.glsl
@@ -6,13 +6,12 @@
 };
 
 S V = S(0);
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   int i = V.i;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/ptr_ref/load/local/i32.spvasm.expected.glsl b/test/ptr_ref/load/local/i32.spvasm.expected.glsl
index 0d7cd53..e7070ee 100644
--- a/test/ptr_ref/load/local/i32.spvasm.expected.glsl
+++ b/test/ptr_ref/load/local/i32.spvasm.expected.glsl
@@ -8,13 +8,12 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/ptr_ref/load/local/i32.wgsl.expected.glsl b/test/ptr_ref/load/local/i32.wgsl.expected.glsl
index d810e0a..28669e2 100644
--- a/test/ptr_ref/load/local/i32.wgsl.expected.glsl
+++ b/test/ptr_ref/load/local/i32.wgsl.expected.glsl
@@ -1,14 +1,13 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   int i = 123;
   int use = (i + 1);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/ptr_ref/load/local/ptr_function.wgsl.expected.glsl b/test/ptr_ref/load/local/ptr_function.wgsl.expected.glsl
index d810e0a..28669e2 100644
--- a/test/ptr_ref/load/local/ptr_function.wgsl.expected.glsl
+++ b/test/ptr_ref/load/local/ptr_function.wgsl.expected.glsl
@@ -1,14 +1,13 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   int i = 123;
   int use = (i + 1);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/ptr_ref/load/local/ptr_private.wgsl.expected.glsl b/test/ptr_ref/load/local/ptr_private.wgsl.expected.glsl
index 4cc2e08..ac8ce2e 100644
--- a/test/ptr_ref/load/local/ptr_private.wgsl.expected.glsl
+++ b/test/ptr_ref/load/local/ptr_private.wgsl.expected.glsl
@@ -2,13 +2,12 @@
 precision mediump float;
 
 int i = 123;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   int use = (i + 1);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/ptr_ref/load/local/ptr_storage.wgsl.expected.glsl b/test/ptr_ref/load/local/ptr_storage.wgsl.expected.glsl
index ec7a6ae..eda6fc6 100644
--- a/test/ptr_ref/load/local/ptr_storage.wgsl.expected.glsl
+++ b/test/ptr_ref/load/local/ptr_storage.wgsl.expected.glsl
@@ -8,13 +8,12 @@
 layout(binding = 0) buffer S_1 {
   int a;
 } v;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   int use = (v.a + 1);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/ptr_ref/load/local/ptr_uniform.wgsl.expected.glsl b/test/ptr_ref/load/local/ptr_uniform.wgsl.expected.glsl
index 664cbb1..c8e4f21 100644
--- a/test/ptr_ref/load/local/ptr_uniform.wgsl.expected.glsl
+++ b/test/ptr_ref/load/local/ptr_uniform.wgsl.expected.glsl
@@ -9,13 +9,12 @@
   int a;
 } v;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   int use = (v.a + 1);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/ptr_ref/load/local/ptr_workgroup.wgsl.expected.glsl b/test/ptr_ref/load/local/ptr_workgroup.wgsl.expected.glsl
index 8e17712..c601cc7 100644
--- a/test/ptr_ref/load/local/ptr_workgroup.wgsl.expected.glsl
+++ b/test/ptr_ref/load/local/ptr_workgroup.wgsl.expected.glsl
@@ -2,11 +2,7 @@
 precision mediump float;
 
 shared int i;
-struct tint_symbol_2 {
-  uint local_invocation_index;
-};
-
-void tint_symbol_inner(uint local_invocation_index) {
+void tint_symbol(uint local_invocation_index) {
   {
     i = 0;
   }
@@ -16,15 +12,7 @@
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.local_invocation_index);
+void main() {
+  tint_symbol(gl_LocalInvocationIndex);
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
-  tint_symbol(inputs);
-}
-
diff --git a/test/ptr_ref/load/local/struct_field.spvasm.expected.glsl b/test/ptr_ref/load/local/struct_field.spvasm.expected.glsl
index ca5baef..911ddfa 100644
--- a/test/ptr_ref/load/local/struct_field.spvasm.expected.glsl
+++ b/test/ptr_ref/load/local/struct_field.spvasm.expected.glsl
@@ -13,13 +13,12 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/ptr_ref/load/local/struct_field.wgsl.expected.glsl b/test/ptr_ref/load/local/struct_field.wgsl.expected.glsl
index bffaaf1..972dc26 100644
--- a/test/ptr_ref/load/local/struct_field.wgsl.expected.glsl
+++ b/test/ptr_ref/load/local/struct_field.wgsl.expected.glsl
@@ -5,14 +5,14 @@
   int i;
 };
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   S V = S(0);
   int i = V.i;
   return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/ptr_ref/load/param/ptr.spvasm.expected.glsl b/test/ptr_ref/load/param/ptr.spvasm.expected.glsl
index 7ed789b..71fd1ce 100644
--- a/test/ptr_ref/load/param/ptr.spvasm.expected.glsl
+++ b/test/ptr_ref/load/param/ptr.spvasm.expected.glsl
@@ -13,13 +13,12 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/ptr_ref/load/param/ptr.wgsl.expected.glsl b/test/ptr_ref/load/param/ptr.wgsl.expected.glsl
index c55ebb3..bf43c8a 100644
--- a/test/ptr_ref/load/param/ptr.wgsl.expected.glsl
+++ b/test/ptr_ref/load/param/ptr.wgsl.expected.glsl
@@ -5,14 +5,13 @@
   return (value + pointer);
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   int i = 123;
   int r = func(i, i);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/ptr_ref/store/global/i32.spvasm.expected.glsl b/test/ptr_ref/store/global/i32.spvasm.expected.glsl
index 502f0c8..ca1d6fc 100644
--- a/test/ptr_ref/store/global/i32.spvasm.expected.glsl
+++ b/test/ptr_ref/store/global/i32.spvasm.expected.glsl
@@ -8,13 +8,12 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/ptr_ref/store/global/i32.wgsl.expected.glsl b/test/ptr_ref/store/global/i32.wgsl.expected.glsl
index 7935a1b..5cc295b 100644
--- a/test/ptr_ref/store/global/i32.wgsl.expected.glsl
+++ b/test/ptr_ref/store/global/i32.wgsl.expected.glsl
@@ -2,14 +2,13 @@
 precision mediump float;
 
 int I = 0;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   I = 123;
   I = ((100 + 20) + 3);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/ptr_ref/store/global/struct_field.spvasm.expected.glsl b/test/ptr_ref/store/global/struct_field.spvasm.expected.glsl
index e298bd8..dcde088 100644
--- a/test/ptr_ref/store/global/struct_field.spvasm.expected.glsl
+++ b/test/ptr_ref/store/global/struct_field.spvasm.expected.glsl
@@ -11,13 +11,12 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/ptr_ref/store/local/i32.spvasm.expected.glsl b/test/ptr_ref/store/local/i32.spvasm.expected.glsl
index 61d339c..188a6fe 100644
--- a/test/ptr_ref/store/local/i32.spvasm.expected.glsl
+++ b/test/ptr_ref/store/local/i32.spvasm.expected.glsl
@@ -9,13 +9,12 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/ptr_ref/store/local/i32.wgsl.expected.glsl b/test/ptr_ref/store/local/i32.wgsl.expected.glsl
index 4adf704..8231764 100644
--- a/test/ptr_ref/store/local/i32.wgsl.expected.glsl
+++ b/test/ptr_ref/store/local/i32.wgsl.expected.glsl
@@ -1,15 +1,14 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   int i = 123;
   i = 123;
   i = ((100 + 20) + 3);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/ptr_ref/store/local/struct_field.spvasm.expected.glsl b/test/ptr_ref/store/local/struct_field.spvasm.expected.glsl
index 8cab3a7..33c17b2 100644
--- a/test/ptr_ref/store/local/struct_field.spvasm.expected.glsl
+++ b/test/ptr_ref/store/local/struct_field.spvasm.expected.glsl
@@ -11,13 +11,12 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/ptr_ref/store/param/ptr.spvasm.expected.glsl b/test/ptr_ref/store/param/ptr.spvasm.expected.glsl
index 807ddc6..137fb05 100644
--- a/test/ptr_ref/store/param/ptr.spvasm.expected.glsl
+++ b/test/ptr_ref/store/param/ptr.spvasm.expected.glsl
@@ -13,13 +13,12 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/ptr_ref/store/param/ptr.wgsl.expected.glsl b/test/ptr_ref/store/param/ptr.wgsl.expected.glsl
index 02abe63..6599e3b 100644
--- a/test/ptr_ref/store/param/ptr.wgsl.expected.glsl
+++ b/test/ptr_ref/store/param/ptr.wgsl.expected.glsl
@@ -5,14 +5,13 @@
   pointer = value;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   int i = 123;
   func(123, i);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/samples/compute_boids.wgsl.expected.glsl b/test/samples/compute_boids.wgsl.expected.glsl
index e96bfa7..d44de14 100644
--- a/test/samples/compute_boids.wgsl.expected.glsl
+++ b/test/samples/compute_boids.wgsl.expected.glsl
@@ -1,26 +1,45 @@
 #version 310 es
 precision mediump float;
 
-struct tint_symbol_2 {
-  vec2 a_particlePos;
-  vec2 a_particleVel;
-  vec2 a_pos;
+layout(location = 0) in vec2 a_particlePos_1;
+layout(location = 1) in vec2 a_particleVel_1;
+layout(location = 2) in vec2 a_pos_1;
+struct Particle {
+  vec2 pos;
+  vec2 vel;
 };
 
-struct tint_symbol_3 {
-  vec4 value;
+struct SimParams {
+  float deltaT;
+  float rule1Distance;
+  float rule2Distance;
+  float rule3Distance;
+  float rule1Scale;
+  float rule2Scale;
+  float rule3Scale;
 };
 
-vec4 vert_main_inner(vec2 a_particlePos, vec2 a_particleVel, vec2 a_pos) {
+struct Particles {
+  Particle particles[5];
+};
+
+vec4 vert_main(vec2 a_particlePos, vec2 a_particleVel, vec2 a_pos) {
   float angle = -(atan(a_particleVel.x, a_particleVel.y));
   vec2 pos = vec2(((a_pos.x * cos(angle)) - (a_pos.y * sin(angle))), ((a_pos.x * sin(angle)) + (a_pos.y * cos(angle))));
   return vec4((pos + a_particlePos), 0.0f, 1.0f);
 }
 
-struct tint_symbol_4 {
-  vec4 value;
-};
+void main() {
+  vec4 inner_result = vert_main(a_particlePos_1, a_particleVel_1, a_pos_1);
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
+#version 310 es
+precision mediump float;
 
+layout(location = 0) out vec4 value;
 struct Particle {
   vec2 pos;
   vec2 vel;
@@ -40,108 +59,18 @@
   Particle particles[5];
 };
 
-struct tint_symbol_6 {
-  uvec3 tint_symbol;
-};
-
-tint_symbol_3 vert_main(tint_symbol_2 tint_symbol_1) {
-  vec4 inner_result = vert_main_inner(tint_symbol_1.a_particlePos, tint_symbol_1.a_particleVel, tint_symbol_1.a_pos);
-  tint_symbol_3 wrapper_result = tint_symbol_3(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-layout(location = 0) in vec2 a_particlePos;
-layout(location = 1) in vec2 a_particleVel;
-layout(location = 2) in vec2 a_pos;
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.a_particlePos = a_particlePos;
-  inputs.a_particleVel = a_particleVel;
-  inputs.a_pos = a_pos;
-  tint_symbol_3 outputs;
-  outputs = vert_main(inputs);
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
-}
-
-#version 310 es
-precision mediump float;
-
-struct tint_symbol_2 {
-  vec2 a_particlePos;
-  vec2 a_particleVel;
-  vec2 a_pos;
-};
-
-struct tint_symbol_3 {
-  vec4 value;
-};
-
-struct tint_symbol_4 {
-  vec4 value;
-};
-
-vec4 frag_main_inner() {
+vec4 frag_main() {
   return vec4(1.0f, 1.0f, 1.0f, 1.0f);
 }
 
-struct Particle {
-  vec2 pos;
-  vec2 vel;
-};
-
-struct SimParams {
-  float deltaT;
-  float rule1Distance;
-  float rule2Distance;
-  float rule3Distance;
-  float rule1Scale;
-  float rule2Scale;
-  float rule3Scale;
-};
-
-struct Particles {
-  Particle particles[5];
-};
-
-struct tint_symbol_6 {
-  uvec3 tint_symbol;
-};
-
-tint_symbol_4 frag_main() {
-  vec4 inner_result_1 = frag_main_inner();
-  tint_symbol_4 wrapper_result_1 = tint_symbol_4(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result_1.value = inner_result_1;
-  return wrapper_result_1;
-}
-layout(location = 0) out vec4 value;
-
 void main() {
-  tint_symbol_4 outputs;
-  outputs = frag_main();
-  value = outputs.value;
+  vec4 inner_result = frag_main();
+  value = inner_result;
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
-struct tint_symbol_2 {
-  vec2 a_particlePos;
-  vec2 a_particleVel;
-  vec2 a_pos;
-};
-
-struct tint_symbol_3 {
-  vec4 value;
-};
-
-struct tint_symbol_4 {
-  vec4 value;
-};
-
 struct Particle {
   vec2 pos;
   vec2 vel;
@@ -177,11 +106,7 @@
 layout(binding = 2) buffer Particles_2 {
   Particle particles[5];
 } particlesB;
-struct tint_symbol_6 {
-  uvec3 tint_symbol;
-};
-
-void comp_main_inner(uvec3 tint_symbol) {
+void comp_main(uvec3 tint_symbol) {
   uint index = tint_symbol.x;
   if ((index >= 5u)) {
     return;
@@ -241,15 +166,7 @@
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void comp_main(tint_symbol_6 tint_symbol_5) {
-  comp_main_inner(tint_symbol_5.tint_symbol);
+void main() {
+  comp_main(gl_GlobalInvocationID);
   return;
 }
-
-
-void main() {
-  tint_symbol_6 inputs;
-  inputs.tint_symbol = gl_GlobalInvocationID;
-  comp_main(inputs);
-}
-
diff --git a/test/samples/cube.wgsl.expected.glsl b/test/samples/cube.wgsl.expected.glsl
index 4e7e02e..ffa40ce 100644
--- a/test/samples/cube.wgsl.expected.glsl
+++ b/test/samples/cube.wgsl.expected.glsl
@@ -1,6 +1,9 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) in vec4 cur_position_1;
+layout(location = 1) in vec4 color_1;
+layout(location = 0) out vec4 vtxFragColor_1;
 struct Uniforms {
   mat4 modelViewProjectionMatrix;
 };
@@ -19,59 +22,27 @@
   vec4 Position;
 };
 
-struct tint_symbol_3 {
-  vec4 cur_position;
-  vec4 color;
-};
-
-struct tint_symbol_4 {
-  vec4 vtxFragColor;
-  vec4 Position;
-};
-
-VertexOutput vtx_main_inner(VertexInput tint_symbol) {
+VertexOutput vtx_main(VertexInput tint_symbol) {
   VertexOutput tint_symbol_1 = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
   tint_symbol_1.Position = (uniforms.modelViewProjectionMatrix * tint_symbol.cur_position);
   tint_symbol_1.vtxFragColor = tint_symbol.color;
   return tint_symbol_1;
 }
 
-struct tint_symbol_6 {
-  vec4 fragColor;
-};
-
-struct tint_symbol_7 {
-  vec4 value;
-};
-
-tint_symbol_4 vtx_main(tint_symbol_3 tint_symbol_2) {
-  VertexInput tint_symbol_8 = VertexInput(tint_symbol_2.cur_position, tint_symbol_2.color);
-  VertexOutput inner_result = vtx_main_inner(tint_symbol_8);
-  tint_symbol_4 wrapper_result = tint_symbol_4(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.vtxFragColor = inner_result.vtxFragColor;
-  wrapper_result.Position = inner_result.Position;
-  return wrapper_result;
-}
-layout(location = 0) in vec4 cur_position;
-layout(location = 1) in vec4 color;
-layout(location = 0) out vec4 vtxFragColor;
-
-
 void main() {
-  tint_symbol_3 inputs;
-  inputs.cur_position = cur_position;
-  inputs.color = color;
-  tint_symbol_4 outputs;
-  outputs = vtx_main(inputs);
-  vtxFragColor = outputs.vtxFragColor;
-  gl_Position = outputs.Position;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  VertexInput tint_symbol_2 = VertexInput(cur_position_1, color_1);
+  VertexOutput inner_result = vtx_main(tint_symbol_2);
+  vtxFragColor_1 = inner_result.vtxFragColor;
+  gl_Position = inner_result.Position;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
+layout(location = 0) in vec4 fragColor_1;
+layout(location = 0) out vec4 value;
 struct Uniforms {
   mat4 modelViewProjectionMatrix;
 };
@@ -86,42 +57,12 @@
   vec4 Position;
 };
 
-struct tint_symbol_3 {
-  vec4 cur_position;
-  vec4 color;
-};
-
-struct tint_symbol_4 {
-  vec4 vtxFragColor;
-  vec4 Position;
-};
-
-struct tint_symbol_6 {
-  vec4 fragColor;
-};
-
-struct tint_symbol_7 {
-  vec4 value;
-};
-
-vec4 frag_main_inner(vec4 fragColor) {
+vec4 frag_main(vec4 fragColor) {
   return fragColor;
 }
 
-tint_symbol_7 frag_main(tint_symbol_6 tint_symbol_5) {
-  vec4 inner_result_1 = frag_main_inner(tint_symbol_5.fragColor);
-  tint_symbol_7 wrapper_result_1 = tint_symbol_7(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result_1.value = inner_result_1;
-  return wrapper_result_1;
-}
-layout(location = 0) in vec4 fragColor;
-layout(location = 0) out vec4 value;
-
 void main() {
-  tint_symbol_6 inputs;
-  inputs.fragColor = fragColor;
-  tint_symbol_7 outputs;
-  outputs = frag_main(inputs);
-  value = outputs.value;
+  vec4 inner_result = frag_main(fragColor_1);
+  value = inner_result;
+  return;
 }
-
diff --git a/test/samples/function.wgsl.expected.glsl b/test/samples/function.wgsl.expected.glsl
index 7f72a2a..e323318 100644
--- a/test/samples/function.wgsl.expected.glsl
+++ b/test/samples/function.wgsl.expected.glsl
@@ -1,12 +1,11 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 2, local_size_y = 1, local_size_z = 1) in;
 void ep() {
-  return;
 }
 
+layout(local_size_x = 2, local_size_y = 1, local_size_z = 1) in;
 void main() {
   ep();
+  return;
 }
-
diff --git a/test/samples/simple.wgsl.expected.glsl b/test/samples/simple.wgsl.expected.glsl
index d84bf76..995583f 100644
--- a/test/samples/simple.wgsl.expected.glsl
+++ b/test/samples/simple.wgsl.expected.glsl
@@ -1,30 +1,18 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 value;
 void bar() {
 }
 
-struct tint_symbol_1 {
-  vec4 value;
-};
-
-vec4 tint_symbol_inner() {
+vec4 tint_symbol() {
   vec2 a = vec2(0.0f, 0.0f);
   bar();
   return vec4(0.400000006f, 0.400000006f, 0.800000012f, 1.0f);
 }
 
-tint_symbol_1 tint_symbol() {
-  vec4 inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 value;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  value = outputs.value;
+  vec4 inner_result = tint_symbol();
+  value = inner_result;
+  return;
 }
-
diff --git a/test/samples/simple_vertex.spvasm.expected.glsl b/test/samples/simple_vertex.spvasm.expected.glsl
index 818a292..e2d9123 100644
--- a/test/samples/simple_vertex.spvasm.expected.glsl
+++ b/test/samples/simple_vertex.spvasm.expected.glsl
@@ -11,29 +11,16 @@
   vec4 tint_symbol;
 };
 
-struct tint_symbol_2 {
-  vec4 tint_symbol;
-};
-
-main_out tint_symbol_1_inner() {
+main_out tint_symbol_1() {
   main_1();
-  main_out tint_symbol_3 = main_out(tint_symbol);
-  return tint_symbol_3;
+  main_out tint_symbol_2 = main_out(tint_symbol);
+  return tint_symbol_2;
 }
 
-tint_symbol_2 tint_symbol_1() {
-  main_out inner_result = tint_symbol_1_inner();
-  tint_symbol_2 wrapper_result = tint_symbol_2(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.tint_symbol = inner_result.tint_symbol;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol_2 outputs;
-  outputs = tint_symbol_1();
-  gl_Position = outputs.tint_symbol;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  main_out inner_result = tint_symbol_1();
+  gl_Position = inner_result.tint_symbol;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
diff --git a/test/samples/triangle.wgsl.expected.glsl b/test/samples/triangle.wgsl.expected.glsl
index 012baae..c69afa9 100644
--- a/test/samples/triangle.wgsl.expected.glsl
+++ b/test/samples/triangle.wgsl.expected.glsl
@@ -2,71 +2,27 @@
 precision mediump float;
 
 const vec2 pos[3] = vec2[3](vec2(0.0f, 0.5f), vec2(-0.5f, -0.5f), vec2(0.5f, -0.5f));
-struct tint_symbol_1 {
-  uint VertexIndex;
-};
-
-struct tint_symbol_2 {
-  vec4 value;
-};
-
-vec4 vtx_main_inner(uint VertexIndex) {
+vec4 vtx_main(uint VertexIndex) {
   return vec4(pos[VertexIndex], 0.0f, 1.0f);
 }
 
-struct tint_symbol_3 {
-  vec4 value;
-};
-
-tint_symbol_2 vtx_main(tint_symbol_1 tint_symbol) {
-  vec4 inner_result = vtx_main_inner(tint_symbol.VertexIndex);
-  tint_symbol_2 wrapper_result = tint_symbol_2(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
-
 void main() {
-  tint_symbol_1 inputs;
-  inputs.VertexIndex = uint(gl_VertexID);
-  tint_symbol_2 outputs;
-  outputs = vtx_main(inputs);
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = vtx_main(uint(gl_VertexID));
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
-struct tint_symbol_1 {
-  uint VertexIndex;
-};
-
-struct tint_symbol_2 {
-  vec4 value;
-};
-
-struct tint_symbol_3 {
-  vec4 value;
-};
-
-vec4 frag_main_inner() {
+layout(location = 0) out vec4 value;
+vec4 frag_main() {
   return vec4(1.0f, 0.0f, 0.0f, 1.0f);
 }
 
-tint_symbol_3 frag_main() {
-  vec4 inner_result_1 = frag_main_inner();
-  tint_symbol_3 wrapper_result_1 = tint_symbol_3(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result_1.value = inner_result_1;
-  return wrapper_result_1;
-}
-layout(location = 0) out vec4 value;
-
 void main() {
-  tint_symbol_3 outputs;
-  outputs = frag_main();
-  value = outputs.value;
+  vec4 inner_result = frag_main();
+  value = inner_result;
+  return;
 }
-
diff --git a/test/shader_io/compute_input_builtins.wgsl.expected.glsl b/test/shader_io/compute_input_builtins.wgsl.expected.glsl
index fe53acf..3c58f73 100644
--- a/test/shader_io/compute_input_builtins.wgsl.expected.glsl
+++ b/test/shader_io/compute_input_builtins.wgsl.expected.glsl
@@ -1,36 +1,12 @@
 #version 310 es
 precision mediump float;
 
-struct tint_symbol_2 {
-  uvec3 local_invocation_id;
-  uint local_invocation_index;
-  uvec3 global_invocation_id;
-  uvec3 workgroup_id;
-  uvec3 num_workgroups;
-};
-
-void tint_symbol_inner(uvec3 local_invocation_id, uint local_invocation_index, uvec3 global_invocation_id, uvec3 workgroup_id, uvec3 num_workgroups) {
+void tint_symbol(uvec3 local_invocation_id, uint local_invocation_index, uvec3 global_invocation_id, uvec3 workgroup_id, uvec3 num_workgroups) {
   uint foo = ((((local_invocation_id.x + local_invocation_index) + global_invocation_id.x) + workgroup_id.x) + num_workgroups.x);
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.local_invocation_id, tint_symbol_1.local_invocation_index, tint_symbol_1.global_invocation_id, tint_symbol_1.workgroup_id, tint_symbol_1.num_workgroups);
+void main() {
+  tint_symbol(gl_LocalInvocationID, gl_LocalInvocationIndex, gl_GlobalInvocationID, gl_WorkGroupID, gl_NumWorkGroups);
   return;
 }
-
-
-
-
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.local_invocation_id = gl_LocalInvocationID;
-  inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
-  inputs.global_invocation_id = gl_GlobalInvocationID;
-  inputs.workgroup_id = gl_WorkGroupID;
-  inputs.num_workgroups = gl_NumWorkGroups;
-  tint_symbol(inputs);
-}
-
diff --git a/test/shader_io/compute_input_builtins_struct.wgsl.expected.glsl b/test/shader_io/compute_input_builtins_struct.wgsl.expected.glsl
index 3c72c78..776ec7e 100644
--- a/test/shader_io/compute_input_builtins_struct.wgsl.expected.glsl
+++ b/test/shader_io/compute_input_builtins_struct.wgsl.expected.glsl
@@ -9,37 +9,13 @@
   uvec3 num_workgroups;
 };
 
-struct tint_symbol_2 {
-  uvec3 local_invocation_id;
-  uint local_invocation_index;
-  uvec3 global_invocation_id;
-  uvec3 workgroup_id;
-  uvec3 num_workgroups;
-};
-
-void tint_symbol_inner(ComputeInputs inputs) {
+void tint_symbol(ComputeInputs inputs) {
   uint foo = ((((inputs.local_invocation_id.x + inputs.local_invocation_index) + inputs.global_invocation_id.x) + inputs.workgroup_id.x) + inputs.num_workgroups.x);
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  ComputeInputs tint_symbol_3 = ComputeInputs(tint_symbol_1.local_invocation_id, tint_symbol_1.local_invocation_index, tint_symbol_1.global_invocation_id, tint_symbol_1.workgroup_id, tint_symbol_1.num_workgroups);
-  tint_symbol_inner(tint_symbol_3);
+void main() {
+  ComputeInputs tint_symbol_1 = ComputeInputs(gl_LocalInvocationID, gl_LocalInvocationIndex, gl_GlobalInvocationID, gl_WorkGroupID, gl_NumWorkGroups);
+  tint_symbol(tint_symbol_1);
   return;
 }
-
-
-
-
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.local_invocation_id = gl_LocalInvocationID;
-  inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
-  inputs.global_invocation_id = gl_GlobalInvocationID;
-  inputs.workgroup_id = gl_WorkGroupID;
-  inputs.num_workgroups = gl_NumWorkGroups;
-  tint_symbol(inputs);
-}
-
diff --git a/test/shader_io/compute_input_mixed.wgsl.expected.glsl b/test/shader_io/compute_input_mixed.wgsl.expected.glsl
index 5ce9f38..6b3683f 100644
--- a/test/shader_io/compute_input_mixed.wgsl.expected.glsl
+++ b/test/shader_io/compute_input_mixed.wgsl.expected.glsl
@@ -9,35 +9,14 @@
   uvec3 workgroup_id;
 };
 
-struct tint_symbol_2 {
-  uvec3 local_invocation_id;
-  uint local_invocation_index;
-  uvec3 global_invocation_id;
-  uvec3 workgroup_id;
-};
-
-void tint_symbol_inner(ComputeInputs0 inputs0, uint local_invocation_index, uvec3 global_invocation_id, ComputeInputs1 inputs1) {
+void tint_symbol(ComputeInputs0 inputs0, uint local_invocation_index, uvec3 global_invocation_id, ComputeInputs1 inputs1) {
   uint foo = (((inputs0.local_invocation_id.x + local_invocation_index) + global_invocation_id.x) + inputs1.workgroup_id.x);
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  ComputeInputs0 tint_symbol_3 = ComputeInputs0(tint_symbol_1.local_invocation_id);
-  ComputeInputs1 tint_symbol_4 = ComputeInputs1(tint_symbol_1.workgroup_id);
-  tint_symbol_inner(tint_symbol_3, tint_symbol_1.local_invocation_index, tint_symbol_1.global_invocation_id, tint_symbol_4);
+void main() {
+  ComputeInputs0 tint_symbol_1 = ComputeInputs0(gl_LocalInvocationID);
+  ComputeInputs1 tint_symbol_2 = ComputeInputs1(gl_WorkGroupID);
+  tint_symbol(tint_symbol_1, gl_LocalInvocationIndex, gl_GlobalInvocationID, tint_symbol_2);
   return;
 }
-
-
-
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.local_invocation_id = gl_LocalInvocationID;
-  inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
-  inputs.global_invocation_id = gl_GlobalInvocationID;
-  inputs.workgroup_id = gl_WorkGroupID;
-  tint_symbol(inputs);
-}
-
diff --git a/test/shader_io/fragment_input_builtins.wgsl.expected.glsl b/test/shader_io/fragment_input_builtins.wgsl.expected.glsl
index 68435f1..fa8c48e 100644
--- a/test/shader_io/fragment_input_builtins.wgsl.expected.glsl
+++ b/test/shader_io/fragment_input_builtins.wgsl.expected.glsl
@@ -3,41 +3,20 @@
 #version 310 es
 precision mediump float;
 
-struct tint_symbol_2 {
-  vec4 position;
-  bool front_facing;
-  uint sample_index;
-  uint sample_mask;
-};
-
-void tint_symbol_inner(vec4 position, bool front_facing, uint sample_index, uint sample_mask) {
+void tint_symbol(vec4 position, bool front_facing, uint sample_index, uint sample_mask) {
   if (front_facing) {
     vec4 foo = position;
     uint bar = (sample_index + sample_mask);
   }
 }
 
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.position, tint_symbol_1.front_facing, tint_symbol_1.sample_index, tint_symbol_1.sample_mask);
+void main() {
+  tint_symbol(gl_FragCoord, gl_FrontFacing, uint(gl_SampleID), uint(gl_SampleMask[0]));
   return;
 }
-
-
-
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.position = gl_FragCoord;
-  inputs.front_facing = gl_FrontFacing;
-  inputs.sample_index = uint(gl_SampleID);
-  inputs.sample_mask = uint(gl_SampleMask);
-  tint_symbol(inputs);
-}
-
 Error parsing GLSL shader:
-ERROR: 0:31: 'gl_SampleID' : required extension not requested: GL_OES_sample_variables
-ERROR: 0:31: '' : compilation terminated 
+ERROR: 0:12: 'gl_SampleID' : required extension not requested: GL_OES_sample_variables
+ERROR: 0:12: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/shader_io/fragment_input_builtins_struct.wgsl.expected.glsl b/test/shader_io/fragment_input_builtins_struct.wgsl.expected.glsl
index f53cb11..9ac60b9 100644
--- a/test/shader_io/fragment_input_builtins_struct.wgsl.expected.glsl
+++ b/test/shader_io/fragment_input_builtins_struct.wgsl.expected.glsl
@@ -10,42 +10,21 @@
   uint sample_mask;
 };
 
-struct tint_symbol_2 {
-  vec4 position;
-  bool front_facing;
-  uint sample_index;
-  uint sample_mask;
-};
-
-void tint_symbol_inner(FragmentInputs inputs) {
+void tint_symbol(FragmentInputs inputs) {
   if (inputs.front_facing) {
     vec4 foo = inputs.position;
     uint bar = (inputs.sample_index + inputs.sample_mask);
   }
 }
 
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  FragmentInputs tint_symbol_3 = FragmentInputs(tint_symbol_1.position, tint_symbol_1.front_facing, tint_symbol_1.sample_index, tint_symbol_1.sample_mask);
-  tint_symbol_inner(tint_symbol_3);
+void main() {
+  FragmentInputs tint_symbol_1 = FragmentInputs(gl_FragCoord, gl_FrontFacing, uint(gl_SampleID), uint(gl_SampleMask[0]));
+  tint_symbol(tint_symbol_1);
   return;
 }
-
-
-
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.position = gl_FragCoord;
-  inputs.front_facing = gl_FrontFacing;
-  inputs.sample_index = uint(gl_SampleID);
-  inputs.sample_mask = uint(gl_SampleMask);
-  tint_symbol(inputs);
-}
-
 Error parsing GLSL shader:
-ERROR: 0:39: 'gl_SampleID' : required extension not requested: GL_OES_sample_variables
-ERROR: 0:39: '' : compilation terminated 
+ERROR: 0:19: 'gl_SampleID' : required extension not requested: GL_OES_sample_variables
+ERROR: 0:19: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/shader_io/fragment_input_locations.wgsl.expected.glsl b/test/shader_io/fragment_input_locations.wgsl.expected.glsl
index bd55ab7..67b0176 100644
--- a/test/shader_io/fragment_input_locations.wgsl.expected.glsl
+++ b/test/shader_io/fragment_input_locations.wgsl.expected.glsl
@@ -1,35 +1,18 @@
 #version 310 es
 precision mediump float;
 
-struct tint_symbol_2 {
-  int loc0;
-  uint loc1;
-  float loc2;
-  vec4 loc3;
-};
-
-void tint_symbol_inner(int loc0, uint loc1, float loc2, vec4 loc3) {
+layout(location = 0) flat in int loc0_1;
+layout(location = 1) flat in uint loc1_1;
+layout(location = 2) in float loc2_1;
+layout(location = 3) in vec4 loc3_1;
+void tint_symbol(int loc0, uint loc1, float loc2, vec4 loc3) {
   int i = loc0;
   uint u = loc1;
   float f = loc2;
   vec4 v = loc3;
 }
 
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.loc0, tint_symbol_1.loc1, tint_symbol_1.loc2, tint_symbol_1.loc3);
+void main() {
+  tint_symbol(loc0_1, loc1_1, loc2_1, loc3_1);
   return;
 }
-layout(location = 0) flat in int loc0;
-layout(location = 1) flat in uint loc1;
-layout(location = 2) in float loc2;
-layout(location = 3) in vec4 loc3;
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.loc0 = loc0;
-  inputs.loc1 = loc1;
-  inputs.loc2 = loc2;
-  inputs.loc3 = loc3;
-  tint_symbol(inputs);
-}
-
diff --git a/test/shader_io/fragment_input_locations_struct.wgsl.expected.glsl b/test/shader_io/fragment_input_locations_struct.wgsl.expected.glsl
index fd2ae1c..aeffb60 100644
--- a/test/shader_io/fragment_input_locations_struct.wgsl.expected.glsl
+++ b/test/shader_io/fragment_input_locations_struct.wgsl.expected.glsl
@@ -1,6 +1,10 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) flat in int loc0_1;
+layout(location = 1) flat in uint loc1_1;
+layout(location = 2) in float loc2_1;
+layout(location = 3) in vec4 loc3_1;
 struct FragmentInputs {
   int loc0;
   uint loc1;
@@ -8,36 +12,15 @@
   vec4 loc3;
 };
 
-struct tint_symbol_2 {
-  int loc0;
-  uint loc1;
-  float loc2;
-  vec4 loc3;
-};
-
-void tint_symbol_inner(FragmentInputs inputs) {
+void tint_symbol(FragmentInputs inputs) {
   int i = inputs.loc0;
   uint u = inputs.loc1;
   float f = inputs.loc2;
   vec4 v = inputs.loc3;
 }
 
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  FragmentInputs tint_symbol_3 = FragmentInputs(tint_symbol_1.loc0, tint_symbol_1.loc1, tint_symbol_1.loc2, tint_symbol_1.loc3);
-  tint_symbol_inner(tint_symbol_3);
+void main() {
+  FragmentInputs tint_symbol_1 = FragmentInputs(loc0_1, loc1_1, loc2_1, loc3_1);
+  tint_symbol(tint_symbol_1);
   return;
 }
-layout(location = 0) flat in int loc0;
-layout(location = 1) flat in uint loc1;
-layout(location = 2) in float loc2;
-layout(location = 3) in vec4 loc3;
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.loc0 = loc0;
-  inputs.loc1 = loc1;
-  inputs.loc2 = loc2;
-  inputs.loc3 = loc3;
-  tint_symbol(inputs);
-}
-
diff --git a/test/shader_io/fragment_input_mixed.wgsl.expected.glsl b/test/shader_io/fragment_input_mixed.wgsl.expected.glsl
index b9ecb1c..7c74204 100644
--- a/test/shader_io/fragment_input_mixed.wgsl.expected.glsl
+++ b/test/shader_io/fragment_input_mixed.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) flat in int loc0_1;
+layout(location = 1) flat in uint loc1_1;
+layout(location = 3) in vec4 loc3_1;
+layout(location = 2) in float loc2_1;
 struct FragmentInputs0 {
   vec4 position;
   int loc0;
@@ -13,18 +17,7 @@
   uint sample_mask;
 };
 
-struct tint_symbol_2 {
-  int loc0;
-  uint loc1;
-  float loc2;
-  vec4 loc3;
-  vec4 position;
-  bool front_facing;
-  uint sample_index;
-  uint sample_mask;
-};
-
-void tint_symbol_inner(FragmentInputs0 inputs0, bool front_facing, uint loc1, uint sample_index, FragmentInputs1 inputs1, float loc2) {
+void tint_symbol(FragmentInputs0 inputs0, bool front_facing, uint loc1, uint sample_index, FragmentInputs1 inputs1, float loc2) {
   if (front_facing) {
     vec4 foo = inputs0.position;
     uint bar = (sample_index + inputs1.sample_mask);
@@ -35,37 +28,15 @@
   }
 }
 
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  FragmentInputs0 tint_symbol_3 = FragmentInputs0(tint_symbol_1.position, tint_symbol_1.loc0);
-  FragmentInputs1 tint_symbol_4 = FragmentInputs1(tint_symbol_1.loc3, tint_symbol_1.sample_mask);
-  tint_symbol_inner(tint_symbol_3, tint_symbol_1.front_facing, tint_symbol_1.loc1, tint_symbol_1.sample_index, tint_symbol_4, tint_symbol_1.loc2);
+void main() {
+  FragmentInputs0 tint_symbol_1 = FragmentInputs0(gl_FragCoord, loc0_1);
+  FragmentInputs1 tint_symbol_2 = FragmentInputs1(loc3_1, uint(gl_SampleMask[0]));
+  tint_symbol(tint_symbol_1, gl_FrontFacing, loc1_1, uint(gl_SampleID), tint_symbol_2, loc2_1);
   return;
 }
-layout(location = 0) flat in int loc0;
-layout(location = 1) flat in uint loc1;
-layout(location = 2) in float loc2;
-layout(location = 3) in vec4 loc3;
-
-
-
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.loc0 = loc0;
-  inputs.loc1 = loc1;
-  inputs.loc2 = loc2;
-  inputs.loc3 = loc3;
-  inputs.position = gl_FragCoord;
-  inputs.front_facing = gl_FrontFacing;
-  inputs.sample_index = uint(gl_SampleID);
-  inputs.sample_mask = uint(gl_SampleMask);
-  tint_symbol(inputs);
-}
-
 Error parsing GLSL shader:
-ERROR: 0:59: 'gl_SampleID' : required extension not requested: GL_OES_sample_variables
-ERROR: 0:59: '' : compilation terminated 
+ERROR: 0:31: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables
+ERROR: 0:31: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/shader_io/fragment_output_builtins.wgsl.expected.glsl b/test/shader_io/fragment_output_builtins.wgsl.expected.glsl
index 5051cbc..1d58724 100644
--- a/test/shader_io/fragment_output_builtins.wgsl.expected.glsl
+++ b/test/shader_io/fragment_output_builtins.wgsl.expected.glsl
@@ -3,64 +3,30 @@
 #version 310 es
 precision mediump float;
 
-struct tint_symbol {
-  float value;
-};
-
-float main1_inner() {
+float main1() {
   return 1.0f;
 }
 
-struct tint_symbol_1 {
-  uint value;
-};
-
-tint_symbol main1() {
-  float inner_result = main1_inner();
-  tint_symbol wrapper_result = tint_symbol(0.0f);
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = main1();
-  gl_FragDepth = outputs.value;
+  float inner_result = main1();
+  gl_FragDepth = inner_result;
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
-struct tint_symbol {
-  float value;
-};
-
-struct tint_symbol_1 {
-  uint value;
-};
-
-uint main2_inner() {
+uint main2() {
   return 1u;
 }
 
-tint_symbol_1 main2() {
-  uint inner_result_1 = main2_inner();
-  tint_symbol_1 wrapper_result_1 = tint_symbol_1(0u);
-  wrapper_result_1.value = inner_result_1;
-  return wrapper_result_1;
-}
-
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = main2();
-  gl_SampleMask = outputs.value;
+  uint inner_result = main2();
+  gl_SampleMask[0] = inner_result;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:27: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables
-ERROR: 0:27: '' : compilation terminated 
+ERROR: 0:10: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables
+ERROR: 0:10: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/shader_io/fragment_output_builtins_struct.wgsl.expected.glsl b/test/shader_io/fragment_output_builtins_struct.wgsl.expected.glsl
index 44aa003..0dce88a 100644
--- a/test/shader_io/fragment_output_builtins_struct.wgsl.expected.glsl
+++ b/test/shader_io/fragment_output_builtins_struct.wgsl.expected.glsl
@@ -8,36 +8,20 @@
   uint sample_mask;
 };
 
-struct tint_symbol_1 {
-  float frag_depth;
-  uint sample_mask;
-};
-
-FragmentOutputs tint_symbol_inner() {
-  FragmentOutputs tint_symbol_2 = FragmentOutputs(1.0f, 1u);
-  return tint_symbol_2;
+FragmentOutputs tint_symbol() {
+  FragmentOutputs tint_symbol_1 = FragmentOutputs(1.0f, 1u);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  FragmentOutputs inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(0.0f, 0u);
-  wrapper_result.frag_depth = inner_result.frag_depth;
-  wrapper_result.sample_mask = inner_result.sample_mask;
-  return wrapper_result;
-}
-
-
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  gl_FragDepth = outputs.frag_depth;
-  gl_SampleMask = outputs.sample_mask;
+  FragmentOutputs inner_result = tint_symbol();
+  gl_FragDepth = inner_result.frag_depth;
+  gl_SampleMask[0] = inner_result.sample_mask;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:33: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables
-ERROR: 0:33: '' : compilation terminated 
+ERROR: 0:17: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables
+ERROR: 0:17: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/shader_io/fragment_output_locations.wgsl.expected.glsl b/test/shader_io/fragment_output_locations.wgsl.expected.glsl
index a82449b..7bcae9c 100644
--- a/test/shader_io/fragment_output_locations.wgsl.expected.glsl
+++ b/test/shader_io/fragment_output_locations.wgsl.expected.glsl
@@ -1,148 +1,52 @@
 #version 310 es
 precision mediump float;
 
-struct tint_symbol {
-  int value;
-};
-
-int main0_inner() {
+layout(location = 0) out int value;
+int main0() {
   return 1;
 }
 
-struct tint_symbol_1 {
-  uint value;
-};
-
-struct tint_symbol_2 {
-  float value;
-};
-
-struct tint_symbol_3 {
-  vec4 value;
-};
-
-tint_symbol main0() {
-  int inner_result = main0_inner();
-  tint_symbol wrapper_result = tint_symbol(0);
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-layout(location = 0) out int value;
-
 void main() {
-  tint_symbol outputs;
-  outputs = main0();
-  value = outputs.value;
+  int inner_result = main0();
+  value = inner_result;
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
-struct tint_symbol {
-  int value;
-};
-
-struct tint_symbol_1 {
-  uint value;
-};
-
-uint main1_inner() {
+layout(location = 1) out uint value;
+uint main1() {
   return 1u;
 }
 
-struct tint_symbol_2 {
-  float value;
-};
-
-struct tint_symbol_3 {
-  vec4 value;
-};
-
-tint_symbol_1 main1() {
-  uint inner_result_1 = main1_inner();
-  tint_symbol_1 wrapper_result_1 = tint_symbol_1(0u);
-  wrapper_result_1.value = inner_result_1;
-  return wrapper_result_1;
-}
-layout(location = 1) out uint value;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = main1();
-  value = outputs.value;
+  uint inner_result = main1();
+  value = inner_result;
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
-struct tint_symbol {
-  int value;
-};
-
-struct tint_symbol_1 {
-  uint value;
-};
-
-struct tint_symbol_2 {
-  float value;
-};
-
-float main2_inner() {
+layout(location = 2) out float value;
+float main2() {
   return 1.0f;
 }
 
-struct tint_symbol_3 {
-  vec4 value;
-};
-
-tint_symbol_2 main2() {
-  float inner_result_2 = main2_inner();
-  tint_symbol_2 wrapper_result_2 = tint_symbol_2(0.0f);
-  wrapper_result_2.value = inner_result_2;
-  return wrapper_result_2;
-}
-layout(location = 2) out float value;
-
 void main() {
-  tint_symbol_2 outputs;
-  outputs = main2();
-  value = outputs.value;
+  float inner_result = main2();
+  value = inner_result;
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
-struct tint_symbol {
-  int value;
-};
-
-struct tint_symbol_1 {
-  uint value;
-};
-
-struct tint_symbol_2 {
-  float value;
-};
-
-struct tint_symbol_3 {
-  vec4 value;
-};
-
-vec4 main3_inner() {
+layout(location = 3) out vec4 value;
+vec4 main3() {
   return vec4(1.0f, 2.0f, 3.0f, 4.0f);
 }
 
-tint_symbol_3 main3() {
-  vec4 inner_result_3 = main3_inner();
-  tint_symbol_3 wrapper_result_3 = tint_symbol_3(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result_3.value = inner_result_3;
-  return wrapper_result_3;
-}
-layout(location = 3) out vec4 value;
-
 void main() {
-  tint_symbol_3 outputs;
-  outputs = main3();
-  value = outputs.value;
+  vec4 inner_result = main3();
+  value = inner_result;
+  return;
 }
-
diff --git a/test/shader_io/fragment_output_locations_struct.wgsl.expected.glsl b/test/shader_io/fragment_output_locations_struct.wgsl.expected.glsl
index 05914ad..9c9a78e 100644
--- a/test/shader_io/fragment_output_locations_struct.wgsl.expected.glsl
+++ b/test/shader_io/fragment_output_locations_struct.wgsl.expected.glsl
@@ -1,6 +1,10 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out int loc0_1;
+layout(location = 1) out uint loc1_1;
+layout(location = 2) out float loc2_1;
+layout(location = 3) out vec4 loc3_1;
 struct FragmentOutputs {
   int loc0;
   uint loc1;
@@ -8,38 +12,16 @@
   vec4 loc3;
 };
 
-struct tint_symbol_1 {
-  int loc0;
-  uint loc1;
-  float loc2;
-  vec4 loc3;
-};
-
-FragmentOutputs tint_symbol_inner() {
-  FragmentOutputs tint_symbol_2 = FragmentOutputs(1, 1u, 1.0f, vec4(1.0f, 2.0f, 3.0f, 4.0f));
-  return tint_symbol_2;
+FragmentOutputs tint_symbol() {
+  FragmentOutputs tint_symbol_1 = FragmentOutputs(1, 1u, 1.0f, vec4(1.0f, 2.0f, 3.0f, 4.0f));
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  FragmentOutputs inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(0, 0u, 0.0f, vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.loc0 = inner_result.loc0;
-  wrapper_result.loc1 = inner_result.loc1;
-  wrapper_result.loc2 = inner_result.loc2;
-  wrapper_result.loc3 = inner_result.loc3;
-  return wrapper_result;
-}
-layout(location = 0) out int loc0;
-layout(location = 1) out uint loc1;
-layout(location = 2) out float loc2;
-layout(location = 3) out vec4 loc3;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  loc0 = outputs.loc0;
-  loc1 = outputs.loc1;
-  loc2 = outputs.loc2;
-  loc3 = outputs.loc3;
+  FragmentOutputs inner_result = tint_symbol();
+  loc0_1 = inner_result.loc0;
+  loc1_1 = inner_result.loc1;
+  loc2_1 = inner_result.loc2;
+  loc3_1 = inner_result.loc3;
+  return;
 }
-
diff --git a/test/shader_io/fragment_output_mixed.wgsl.expected.glsl b/test/shader_io/fragment_output_mixed.wgsl.expected.glsl
index 8bc4c9f..2344346 100644
--- a/test/shader_io/fragment_output_mixed.wgsl.expected.glsl
+++ b/test/shader_io/fragment_output_mixed.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out int loc0_1;
+layout(location = 1) out uint loc1_1;
+layout(location = 2) out float loc2_1;
+layout(location = 3) out vec4 loc3_1;
 struct FragmentOutputs {
   int loc0;
   float frag_depth;
@@ -12,52 +16,24 @@
   vec4 loc3;
 };
 
-struct tint_symbol_1 {
-  int loc0;
-  uint loc1;
-  float loc2;
-  vec4 loc3;
-  float frag_depth;
-  uint sample_mask;
-};
-
-FragmentOutputs tint_symbol_inner() {
-  FragmentOutputs tint_symbol_2 = FragmentOutputs(1, 2.0f, 1u, 1.0f, 2u, vec4(1.0f, 2.0f, 3.0f, 4.0f));
-  return tint_symbol_2;
+FragmentOutputs tint_symbol() {
+  FragmentOutputs tint_symbol_1 = FragmentOutputs(1, 2.0f, 1u, 1.0f, 2u, vec4(1.0f, 2.0f, 3.0f, 4.0f));
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  FragmentOutputs inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(0, 0u, 0.0f, vec4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, 0u);
-  wrapper_result.loc0 = inner_result.loc0;
-  wrapper_result.frag_depth = inner_result.frag_depth;
-  wrapper_result.loc1 = inner_result.loc1;
-  wrapper_result.loc2 = inner_result.loc2;
-  wrapper_result.sample_mask = inner_result.sample_mask;
-  wrapper_result.loc3 = inner_result.loc3;
-  return wrapper_result;
-}
-layout(location = 0) out int loc0;
-layout(location = 1) out uint loc1;
-layout(location = 2) out float loc2;
-layout(location = 3) out vec4 loc3;
-
-
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  loc0 = outputs.loc0;
-  loc1 = outputs.loc1;
-  loc2 = outputs.loc2;
-  loc3 = outputs.loc3;
-  gl_FragDepth = outputs.frag_depth;
-  gl_SampleMask = outputs.sample_mask;
+  FragmentOutputs inner_result = tint_symbol();
+  loc0_1 = inner_result.loc0;
+  gl_FragDepth = inner_result.frag_depth;
+  loc1_1 = inner_result.loc1;
+  loc2_1 = inner_result.loc2;
+  gl_SampleMask[0] = inner_result.sample_mask;
+  loc3_1 = inner_result.loc3;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:53: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables
-ERROR: 0:53: '' : compilation terminated 
+ERROR: 0:28: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables
+ERROR: 0:28: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/shader_io/interpolate_input_parameters.wgsl.expected.glsl b/test/shader_io/interpolate_input_parameters.wgsl.expected.glsl
index 39a7ae9..bb459d1 100644
--- a/test/shader_io/interpolate_input_parameters.wgsl.expected.glsl
+++ b/test/shader_io/interpolate_input_parameters.wgsl.expected.glsl
@@ -1,43 +1,18 @@
 #version 310 es
 precision mediump float;
 
-struct tint_symbol_3 {
-  float none;
-  float tint_symbol_1;
-  float perspective_center;
-  float perspective_centroid;
-  float perspective_sample;
-  float linear_center;
-  float linear_centroid;
-  float linear_sample;
-};
-
-void tint_symbol_inner(float none, float tint_symbol_1, float perspective_center, float perspective_centroid, float perspective_sample, float linear_center, float linear_centroid, float linear_sample) {
+layout(location = 0) in float none_1;
+layout(location = 1) flat in float tint_symbol_1_1;
+layout(location = 2) in float perspective_center_1;
+layout(location = 3) centroid in float perspective_centroid_1;
+layout(location = 4) in float perspective_sample_1;
+layout(location = 5) in float linear_center_1;
+layout(location = 6) centroid in float linear_centroid_1;
+layout(location = 7) in float linear_sample_1;
+void tint_symbol(float none, float tint_symbol_1, float perspective_center, float perspective_centroid, float perspective_sample, float linear_center, float linear_centroid, float linear_sample) {
 }
 
-void tint_symbol(tint_symbol_3 tint_symbol_2) {
-  tint_symbol_inner(tint_symbol_2.none, tint_symbol_2.tint_symbol_1, tint_symbol_2.perspective_center, tint_symbol_2.perspective_centroid, tint_symbol_2.perspective_sample, tint_symbol_2.linear_center, tint_symbol_2.linear_centroid, tint_symbol_2.linear_sample);
-  return;
-}
-layout(location = 0) in float none;
-layout(location = 1) flat in float tint_symbol_1;
-layout(location = 2) in float perspective_center;
-layout(location = 3) centroid in float perspective_centroid;
-layout(location = 4) in float perspective_sample;
-layout(location = 5) in float linear_center;
-layout(location = 6) centroid in float linear_centroid;
-layout(location = 7) in float linear_sample;
-
 void main() {
-  tint_symbol_3 inputs;
-  inputs.none = none;
-  inputs.tint_symbol_1 = tint_symbol_1;
-  inputs.perspective_center = perspective_center;
-  inputs.perspective_centroid = perspective_centroid;
-  inputs.perspective_sample = perspective_sample;
-  inputs.linear_center = linear_center;
-  inputs.linear_centroid = linear_centroid;
-  inputs.linear_sample = linear_sample;
-  tint_symbol(inputs);
+  tint_symbol(none_1, tint_symbol_1_1, perspective_center_1, perspective_centroid_1, perspective_sample_1, linear_center_1, linear_centroid_1, linear_sample_1);
+  return;
 }
-
diff --git a/test/shader_io/interpolate_input_struct.wgsl.expected.glsl b/test/shader_io/interpolate_input_struct.wgsl.expected.glsl
index 7c062cd..2bb8a90 100644
--- a/test/shader_io/interpolate_input_struct.wgsl.expected.glsl
+++ b/test/shader_io/interpolate_input_struct.wgsl.expected.glsl
@@ -1,6 +1,14 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) in float none_1;
+layout(location = 1) flat in float tint_symbol_3;
+layout(location = 2) in float perspective_center_1;
+layout(location = 3) centroid in float perspective_centroid_1;
+layout(location = 4) in float perspective_sample_1;
+layout(location = 5) in float linear_center_1;
+layout(location = 6) centroid in float linear_centroid_1;
+layout(location = 7) in float linear_sample_1;
 struct In {
   float none;
   float tint_symbol;
@@ -12,44 +20,11 @@
   float linear_sample;
 };
 
-struct tint_symbol_4 {
-  float none;
-  float tint_symbol;
-  float perspective_center;
-  float perspective_centroid;
-  float perspective_sample;
-  float linear_center;
-  float linear_centroid;
-  float linear_sample;
-};
-
-void tint_symbol_1_inner(In tint_symbol_2) {
+void tint_symbol_1(In tint_symbol_2) {
 }
 
-void tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  In tint_symbol_5 = In(tint_symbol_3.none, tint_symbol_3.tint_symbol, tint_symbol_3.perspective_center, tint_symbol_3.perspective_centroid, tint_symbol_3.perspective_sample, tint_symbol_3.linear_center, tint_symbol_3.linear_centroid, tint_symbol_3.linear_sample);
-  tint_symbol_1_inner(tint_symbol_5);
-  return;
-}
-layout(location = 0) in float none;
-layout(location = 1) flat in float tint_symbol;
-layout(location = 2) in float perspective_center;
-layout(location = 3) centroid in float perspective_centroid;
-layout(location = 4) in float perspective_sample;
-layout(location = 5) in float linear_center;
-layout(location = 6) centroid in float linear_centroid;
-layout(location = 7) in float linear_sample;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.none = none;
-  inputs.tint_symbol = tint_symbol;
-  inputs.perspective_center = perspective_center;
-  inputs.perspective_centroid = perspective_centroid;
-  inputs.perspective_sample = perspective_sample;
-  inputs.linear_center = linear_center;
-  inputs.linear_centroid = linear_centroid;
-  inputs.linear_sample = linear_sample;
-  tint_symbol_1(inputs);
+  In tint_symbol_4 = In(none_1, tint_symbol_3, perspective_center_1, perspective_centroid_1, perspective_sample_1, linear_center_1, linear_centroid_1, linear_sample_1);
+  tint_symbol_1(tint_symbol_4);
+  return;
 }
-
diff --git a/test/shader_io/interpolate_integers.wgsl.expected.glsl b/test/shader_io/interpolate_integers.wgsl.expected.glsl
index d6abebf..23e6831 100644
--- a/test/shader_io/interpolate_integers.wgsl.expected.glsl
+++ b/test/shader_io/interpolate_integers.wgsl.expected.glsl
@@ -1,6 +1,10 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) flat out int i_1;
+layout(location = 1) flat out uint u_1;
+layout(location = 2) flat out ivec4 vi_1;
+layout(location = 3) flat out uvec4 vu_1;
 struct Interface {
   int i;
   uint u;
@@ -9,62 +13,30 @@
   vec4 pos;
 };
 
-struct tint_symbol {
-  int i;
-  uint u;
-  ivec4 vi;
-  uvec4 vu;
-  vec4 pos;
-};
-
-Interface vert_main_inner() {
-  Interface tint_symbol_4 = Interface(0, 0u, ivec4(0, 0, 0, 0), uvec4(0u, 0u, 0u, 0u), vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  return tint_symbol_4;
+Interface vert_main() {
+  Interface tint_symbol = Interface(0, 0u, ivec4(0, 0, 0, 0), uvec4(0u, 0u, 0u, 0u), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  return tint_symbol;
 }
 
-struct tint_symbol_2 {
-  int i;
-  uint u;
-  ivec4 vi;
-  uvec4 vu;
-  vec4 pos;
-};
-
-struct tint_symbol_3 {
-  int value;
-};
-
-tint_symbol vert_main() {
-  Interface inner_result = vert_main_inner();
-  tint_symbol wrapper_result = tint_symbol(0, 0u, ivec4(0, 0, 0, 0), uvec4(0u, 0u, 0u, 0u), vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.i = inner_result.i;
-  wrapper_result.u = inner_result.u;
-  wrapper_result.vi = inner_result.vi;
-  wrapper_result.vu = inner_result.vu;
-  wrapper_result.pos = inner_result.pos;
-  return wrapper_result;
-}
-layout(location = 0) flat out int i;
-layout(location = 1) flat out uint u;
-layout(location = 2) flat out ivec4 vi;
-layout(location = 3) flat out uvec4 vu;
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vert_main();
-  i = outputs.i;
-  u = outputs.u;
-  vi = outputs.vi;
-  vu = outputs.vu;
-  gl_Position = outputs.pos;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  Interface inner_result = vert_main();
+  i_1 = inner_result.i;
+  u_1 = inner_result.u;
+  vi_1 = inner_result.vi;
+  vu_1 = inner_result.vu;
+  gl_Position = inner_result.pos;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
+layout(location = 0) flat in int i_1;
+layout(location = 1) flat in uint u_1;
+layout(location = 2) flat in ivec4 vi_1;
+layout(location = 3) flat in uvec4 vu_1;
+layout(location = 0) out int value;
 struct Interface {
   int i;
   uint u;
@@ -73,53 +45,13 @@
   vec4 pos;
 };
 
-struct tint_symbol {
-  int i;
-  uint u;
-  ivec4 vi;
-  uvec4 vu;
-  vec4 pos;
-};
-
-struct tint_symbol_2 {
-  int i;
-  uint u;
-  ivec4 vi;
-  uvec4 vu;
-  vec4 pos;
-};
-
-struct tint_symbol_3 {
-  int value;
-};
-
-int frag_main_inner(Interface inputs) {
+int frag_main(Interface inputs) {
   return inputs.i;
 }
 
-tint_symbol_3 frag_main(tint_symbol_2 tint_symbol_1) {
-  Interface tint_symbol_4 = Interface(tint_symbol_1.i, tint_symbol_1.u, tint_symbol_1.vi, tint_symbol_1.vu, tint_symbol_1.pos);
-  int inner_result_1 = frag_main_inner(tint_symbol_4);
-  tint_symbol_3 wrapper_result_1 = tint_symbol_3(0);
-  wrapper_result_1.value = inner_result_1;
-  return wrapper_result_1;
-}
-layout(location = 0) flat in int i;
-layout(location = 1) flat in uint u;
-layout(location = 2) flat in ivec4 vi;
-layout(location = 3) flat in uvec4 vu;
-
-layout(location = 0) out int value;
-
 void main() {
-  tint_symbol_2 inputs;
-  inputs.i = i;
-  inputs.u = u;
-  inputs.vi = vi;
-  inputs.vu = vu;
-  inputs.pos = gl_FragCoord;
-  tint_symbol_3 outputs;
-  outputs = frag_main(inputs);
-  value = outputs.value;
+  Interface tint_symbol = Interface(i_1, u_1, vi_1, vu_1, gl_FragCoord);
+  int inner_result = frag_main(tint_symbol);
+  value = inner_result;
+  return;
 }
-
diff --git a/test/shader_io/interpolate_return_struct.wgsl.expected.glsl b/test/shader_io/interpolate_return_struct.wgsl.expected.glsl
index 27a4b0f..5d0b07f 100644
--- a/test/shader_io/interpolate_return_struct.wgsl.expected.glsl
+++ b/test/shader_io/interpolate_return_struct.wgsl.expected.glsl
@@ -1,6 +1,14 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out float none_1;
+layout(location = 1) flat out float tint_symbol_2;
+layout(location = 2) out float perspective_center_1;
+layout(location = 3) centroid out float perspective_centroid_1;
+layout(location = 4) out float perspective_sample_1;
+layout(location = 5) out float linear_center_1;
+layout(location = 6) centroid out float linear_centroid_1;
+layout(location = 7) out float linear_sample_1;
 struct Out {
   vec4 pos;
   float none;
@@ -13,60 +21,23 @@
   float linear_sample;
 };
 
-struct tint_symbol_2 {
-  float none;
-  float tint_symbol;
-  float perspective_center;
-  float perspective_centroid;
-  float perspective_sample;
-  float linear_center;
-  float linear_centroid;
-  float linear_sample;
-  vec4 pos;
-};
-
-Out tint_symbol_1_inner() {
+Out tint_symbol_1() {
   Out tint_symbol_3 = Out(vec4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
   return tint_symbol_3;
 }
 
-tint_symbol_2 tint_symbol_1() {
-  Out inner_result = tint_symbol_1_inner();
-  tint_symbol_2 wrapper_result = tint_symbol_2(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.pos = inner_result.pos;
-  wrapper_result.none = inner_result.none;
-  wrapper_result.tint_symbol = inner_result.tint_symbol;
-  wrapper_result.perspective_center = inner_result.perspective_center;
-  wrapper_result.perspective_centroid = inner_result.perspective_centroid;
-  wrapper_result.perspective_sample = inner_result.perspective_sample;
-  wrapper_result.linear_center = inner_result.linear_center;
-  wrapper_result.linear_centroid = inner_result.linear_centroid;
-  wrapper_result.linear_sample = inner_result.linear_sample;
-  return wrapper_result;
-}
-layout(location = 0) out float none;
-layout(location = 1) flat out float tint_symbol;
-layout(location = 2) out float perspective_center;
-layout(location = 3) centroid out float perspective_centroid;
-layout(location = 4) out float perspective_sample;
-layout(location = 5) out float linear_center;
-layout(location = 6) centroid out float linear_centroid;
-layout(location = 7) out float linear_sample;
-
-
 void main() {
-  tint_symbol_2 outputs;
-  outputs = tint_symbol_1();
-  none = outputs.none;
-  tint_symbol = outputs.tint_symbol;
-  perspective_center = outputs.perspective_center;
-  perspective_centroid = outputs.perspective_centroid;
-  perspective_sample = outputs.perspective_sample;
-  linear_center = outputs.linear_center;
-  linear_centroid = outputs.linear_centroid;
-  linear_sample = outputs.linear_sample;
-  gl_Position = outputs.pos;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  Out inner_result = tint_symbol_1();
+  gl_Position = inner_result.pos;
+  none_1 = inner_result.none;
+  tint_symbol_2 = inner_result.tint_symbol;
+  perspective_center_1 = inner_result.perspective_center;
+  perspective_centroid_1 = inner_result.perspective_centroid;
+  perspective_sample_1 = inner_result.perspective_sample;
+  linear_center_1 = inner_result.linear_center;
+  linear_centroid_1 = inner_result.linear_centroid;
+  linear_sample_1 = inner_result.linear_sample;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
diff --git a/test/shader_io/invariant.wgsl.expected.glsl b/test/shader_io/invariant.wgsl.expected.glsl
index e80be2c..f8f98d7 100644
--- a/test/shader_io/invariant.wgsl.expected.glsl
+++ b/test/shader_io/invariant.wgsl.expected.glsl
@@ -1,27 +1,14 @@
 #version 310 es
 precision mediump float;
 
-struct tint_symbol_1 {
-  vec4 value;
-};
-
-vec4 tint_symbol_inner() {
+vec4 tint_symbol() {
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol_1 tint_symbol() {
-  vec4 inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = tint_symbol();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
diff --git a/test/shader_io/invariant_struct_member.wgsl.expected.glsl b/test/shader_io/invariant_struct_member.wgsl.expected.glsl
index df27cb0..5f01801 100644
--- a/test/shader_io/invariant_struct_member.wgsl.expected.glsl
+++ b/test/shader_io/invariant_struct_member.wgsl.expected.glsl
@@ -5,28 +5,15 @@
   vec4 pos;
 };
 
-struct tint_symbol_1 {
-  vec4 pos;
-};
-
-Out tint_symbol_inner() {
-  Out tint_symbol_2 = Out(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  return tint_symbol_2;
+Out tint_symbol() {
+  Out tint_symbol_1 = Out(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  Out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.pos = inner_result.pos;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  gl_Position = outputs.pos;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  Out inner_result = tint_symbol();
+  gl_Position = inner_result.pos;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
diff --git a/test/shader_io/shared_struct_different_stages.wgsl.expected.glsl b/test/shader_io/shared_struct_different_stages.wgsl.expected.glsl
index 5ca3021..cac9b6b 100644
--- a/test/shader_io/shared_struct_different_stages.wgsl.expected.glsl
+++ b/test/shader_io/shared_struct_different_stages.wgsl.expected.glsl
@@ -1,91 +1,46 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 1) out float col1_1;
+layout(location = 2) out float col2_1;
 struct Interface {
   float col1;
   float col2;
   vec4 pos;
 };
 
-struct tint_symbol {
-  float col1;
-  float col2;
-  vec4 pos;
-};
-
-Interface vert_main_inner() {
-  Interface tint_symbol_3 = Interface(0.400000006f, 0.600000024f, vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  return tint_symbol_3;
+Interface vert_main() {
+  Interface tint_symbol = Interface(0.400000006f, 0.600000024f, vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  return tint_symbol;
 }
 
-struct tint_symbol_2 {
-  float col1;
-  float col2;
-  vec4 pos;
-};
-
-tint_symbol vert_main() {
-  Interface inner_result = vert_main_inner();
-  tint_symbol wrapper_result = tint_symbol(0.0f, 0.0f, vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.col1 = inner_result.col1;
-  wrapper_result.col2 = inner_result.col2;
-  wrapper_result.pos = inner_result.pos;
-  return wrapper_result;
-}
-layout(location = 1) out float col1;
-layout(location = 2) out float col2;
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vert_main();
-  col1 = outputs.col1;
-  col2 = outputs.col2;
-  gl_Position = outputs.pos;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  Interface inner_result = vert_main();
+  col1_1 = inner_result.col1;
+  col2_1 = inner_result.col2;
+  gl_Position = inner_result.pos;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
+layout(location = 1) in float col1_1;
+layout(location = 2) in float col2_1;
 struct Interface {
   float col1;
   float col2;
   vec4 pos;
 };
 
-struct tint_symbol {
-  float col1;
-  float col2;
-  vec4 pos;
-};
-
-struct tint_symbol_2 {
-  float col1;
-  float col2;
-  vec4 pos;
-};
-
-void frag_main_inner(Interface colors) {
+void frag_main(Interface colors) {
   float r = colors.col1;
   float g = colors.col2;
 }
 
-void frag_main(tint_symbol_2 tint_symbol_1) {
-  Interface tint_symbol_3 = Interface(tint_symbol_1.col1, tint_symbol_1.col2, tint_symbol_1.pos);
-  frag_main_inner(tint_symbol_3);
+void main() {
+  Interface tint_symbol = Interface(col1_1, col2_1, gl_FragCoord);
+  frag_main(tint_symbol);
   return;
 }
-layout(location = 1) in float col1;
-layout(location = 2) in float col2;
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.col1 = col1;
-  inputs.col2 = col2;
-  inputs.pos = gl_FragCoord;
-  frag_main(inputs);
-}
-
diff --git a/test/shader_io/shared_struct_helper_function.wgsl.expected.glsl b/test/shader_io/shared_struct_helper_function.wgsl.expected.glsl
index aea561a..34fecd5 100644
--- a/test/shader_io/shared_struct_helper_function.wgsl.expected.glsl
+++ b/test/shader_io/shared_struct_helper_function.wgsl.expected.glsl
@@ -1,92 +1,52 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) flat out int loc0_1;
 struct VertexOutput {
   vec4 pos;
   int loc0;
 };
 
 VertexOutput foo(float x) {
-  VertexOutput tint_symbol_2 = VertexOutput(vec4(x, x, x, 1.0f), 42);
-  return tint_symbol_2;
+  VertexOutput tint_symbol = VertexOutput(vec4(x, x, x, 1.0f), 42);
+  return tint_symbol;
 }
 
-struct tint_symbol {
-  int loc0;
-  vec4 pos;
-};
-
-VertexOutput vert_main1_inner() {
+VertexOutput vert_main1() {
   return foo(0.5f);
 }
 
-struct tint_symbol_1 {
-  int loc0;
-  vec4 pos;
-};
-
-tint_symbol vert_main1() {
-  VertexOutput inner_result = vert_main1_inner();
-  tint_symbol wrapper_result = tint_symbol(0, vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.pos = inner_result.pos;
-  wrapper_result.loc0 = inner_result.loc0;
-  return wrapper_result;
-}
-layout(location = 0) flat out int loc0;
-
-
 void main() {
-  tint_symbol outputs;
-  outputs = vert_main1();
-  loc0 = outputs.loc0;
-  gl_Position = outputs.pos;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  VertexOutput inner_result = vert_main1();
+  gl_Position = inner_result.pos;
+  loc0_1 = inner_result.loc0;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
+layout(location = 0) flat out int loc0_1;
 struct VertexOutput {
   vec4 pos;
   int loc0;
 };
 
 VertexOutput foo(float x) {
-  VertexOutput tint_symbol_2 = VertexOutput(vec4(x, x, x, 1.0f), 42);
-  return tint_symbol_2;
+  VertexOutput tint_symbol = VertexOutput(vec4(x, x, x, 1.0f), 42);
+  return tint_symbol;
 }
 
-struct tint_symbol {
-  int loc0;
-  vec4 pos;
-};
-
-struct tint_symbol_1 {
-  int loc0;
-  vec4 pos;
-};
-
-VertexOutput vert_main2_inner() {
+VertexOutput vert_main2() {
   return foo(0.25f);
 }
 
-tint_symbol_1 vert_main2() {
-  VertexOutput inner_result_1 = vert_main2_inner();
-  tint_symbol_1 wrapper_result_1 = tint_symbol_1(0, vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result_1.pos = inner_result_1.pos;
-  wrapper_result_1.loc0 = inner_result_1.loc0;
-  return wrapper_result_1;
-}
-layout(location = 0) flat out int loc0;
-
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = vert_main2();
-  loc0 = outputs.loc0;
-  gl_Position = outputs.pos;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  VertexOutput inner_result = vert_main2();
+  gl_Position = inner_result.pos;
+  loc0_1 = inner_result.loc0;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
diff --git a/test/shader_io/shared_struct_storage_buffer.wgsl.expected.glsl b/test/shader_io/shared_struct_storage_buffer.wgsl.expected.glsl
index 25f6645..69b3155 100644
--- a/test/shader_io/shared_struct_storage_buffer.wgsl.expected.glsl
+++ b/test/shader_io/shared_struct_storage_buffer.wgsl.expected.glsl
@@ -3,6 +3,8 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) in float f_1;
+layout(location = 1) flat in uint u_1;
 struct S {
   float f;
   uint u;
@@ -14,39 +16,21 @@
   uint u;
   vec4 v;
 } tint_symbol;
-struct tint_symbol_3 {
-  float f;
-  uint u;
-  vec4 v;
-};
-
-void frag_main_inner(S tint_symbol_1) {
+void frag_main(S tint_symbol_1) {
   float f = tint_symbol_1.f;
   uint u = tint_symbol_1.u;
   vec4 v = tint_symbol_1.v;
   tint_symbol = tint_symbol_1;
 }
 
-void frag_main(tint_symbol_3 tint_symbol_2) {
-  S tint_symbol_4 = S(tint_symbol_2.f, tint_symbol_2.u, tint_symbol_2.v);
-  frag_main_inner(tint_symbol_4);
+void main() {
+  S tint_symbol_2 = S(f_1, u_1, gl_FragCoord);
+  frag_main(tint_symbol_2);
   return;
 }
-layout(location = 0) in float f;
-layout(location = 1) flat in uint u;
-
-
-void main() {
-  tint_symbol_3 inputs;
-  inputs.f = f;
-  inputs.u = u;
-  inputs.v = gl_FragCoord;
-  frag_main(inputs);
-}
-
 Error parsing GLSL shader:
-ERROR: 0:25: 'assign' :  cannot convert from ' in structure{ global mediump float f,  global mediump uint u,  global mediump 4-component vector of float v}' to 'layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer mediump float f, layout( column_major shared) buffer mediump uint u, layout( column_major shared) buffer mediump 4-component vector of float v}'
-ERROR: 0:25: '' : compilation terminated 
+ERROR: 0:21: 'assign' :  cannot convert from ' in structure{ global mediump float f,  global mediump uint u,  global mediump 4-component vector of float v}' to 'layout( binding=0 column_major shared) buffer block{layout( column_major shared) buffer mediump float f, layout( column_major shared) buffer mediump uint u, layout( column_major shared) buffer mediump 4-component vector of float v}'
+ERROR: 0:21: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/shader_io/vertex_input_builtins.wgsl.expected.glsl b/test/shader_io/vertex_input_builtins.wgsl.expected.glsl
index 5fc5936..b8984e1 100644
--- a/test/shader_io/vertex_input_builtins.wgsl.expected.glsl
+++ b/test/shader_io/vertex_input_builtins.wgsl.expected.glsl
@@ -1,38 +1,15 @@
 #version 310 es
 precision mediump float;
 
-struct tint_symbol_2 {
-  uint vertex_index;
-  uint instance_index;
-};
-
-struct tint_symbol_3 {
-  vec4 value;
-};
-
-vec4 tint_symbol_inner(uint vertex_index, uint instance_index) {
+vec4 tint_symbol(uint vertex_index, uint instance_index) {
   uint foo = (vertex_index + instance_index);
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol_3 tint_symbol(tint_symbol_2 tint_symbol_1) {
-  vec4 inner_result = tint_symbol_inner(tint_symbol_1.vertex_index, tint_symbol_1.instance_index);
-  tint_symbol_3 wrapper_result = tint_symbol_3(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
-
-
 void main() {
-  tint_symbol_2 inputs;
-  inputs.vertex_index = uint(gl_VertexID);
-  inputs.instance_index = uint(gl_InstanceID);
-  tint_symbol_3 outputs;
-  outputs = tint_symbol(inputs);
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = tint_symbol(uint(gl_VertexID), uint(gl_InstanceID));
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
diff --git a/test/shader_io/vertex_input_builtins_struct.wgsl.expected.glsl b/test/shader_io/vertex_input_builtins_struct.wgsl.expected.glsl
index 159c575..2df4079 100644
--- a/test/shader_io/vertex_input_builtins_struct.wgsl.expected.glsl
+++ b/test/shader_io/vertex_input_builtins_struct.wgsl.expected.glsl
@@ -6,39 +6,16 @@
   uint instance_index;
 };
 
-struct tint_symbol_2 {
-  uint vertex_index;
-  uint instance_index;
-};
-
-struct tint_symbol_3 {
-  vec4 value;
-};
-
-vec4 tint_symbol_inner(VertexInputs inputs) {
+vec4 tint_symbol(VertexInputs inputs) {
   uint foo = (inputs.vertex_index + inputs.instance_index);
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol_3 tint_symbol(tint_symbol_2 tint_symbol_1) {
-  VertexInputs tint_symbol_4 = VertexInputs(tint_symbol_1.vertex_index, tint_symbol_1.instance_index);
-  vec4 inner_result = tint_symbol_inner(tint_symbol_4);
-  tint_symbol_3 wrapper_result = tint_symbol_3(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
-
-
 void main() {
-  tint_symbol_2 inputs;
-  inputs.vertex_index = uint(gl_VertexID);
-  inputs.instance_index = uint(gl_InstanceID);
-  tint_symbol_3 outputs;
-  outputs = tint_symbol(inputs);
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  VertexInputs tint_symbol_1 = VertexInputs(uint(gl_VertexID), uint(gl_InstanceID));
+  vec4 inner_result = tint_symbol(tint_symbol_1);
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
diff --git a/test/shader_io/vertex_input_locations.wgsl.expected.glsl b/test/shader_io/vertex_input_locations.wgsl.expected.glsl
index ff2bf50..2cf1f18 100644
--- a/test/shader_io/vertex_input_locations.wgsl.expected.glsl
+++ b/test/shader_io/vertex_input_locations.wgsl.expected.glsl
@@ -1,18 +1,11 @@
 #version 310 es
 precision mediump float;
 
-struct tint_symbol_2 {
-  int loc0;
-  uint loc1;
-  float loc2;
-  vec4 loc3;
-};
-
-struct tint_symbol_3 {
-  vec4 value;
-};
-
-vec4 tint_symbol_inner(int loc0, uint loc1, float loc2, vec4 loc3) {
+layout(location = 0) in int loc0_1;
+layout(location = 1) in uint loc1_1;
+layout(location = 2) in float loc2_1;
+layout(location = 3) in vec4 loc3_1;
+vec4 tint_symbol(int loc0, uint loc1, float loc2, vec4 loc3) {
   int i = loc0;
   uint u = loc1;
   float f = loc2;
@@ -20,28 +13,10 @@
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol_3 tint_symbol(tint_symbol_2 tint_symbol_1) {
-  vec4 inner_result = tint_symbol_inner(tint_symbol_1.loc0, tint_symbol_1.loc1, tint_symbol_1.loc2, tint_symbol_1.loc3);
-  tint_symbol_3 wrapper_result = tint_symbol_3(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-layout(location = 0) in int loc0;
-layout(location = 1) in uint loc1;
-layout(location = 2) in float loc2;
-layout(location = 3) in vec4 loc3;
-
-
 void main() {
-  tint_symbol_2 inputs;
-  inputs.loc0 = loc0;
-  inputs.loc1 = loc1;
-  inputs.loc2 = loc2;
-  inputs.loc3 = loc3;
-  tint_symbol_3 outputs;
-  outputs = tint_symbol(inputs);
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = tint_symbol(loc0_1, loc1_1, loc2_1, loc3_1);
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
diff --git a/test/shader_io/vertex_input_locations_struct.wgsl.expected.glsl b/test/shader_io/vertex_input_locations_struct.wgsl.expected.glsl
index ba1db5d..10cfd11 100644
--- a/test/shader_io/vertex_input_locations_struct.wgsl.expected.glsl
+++ b/test/shader_io/vertex_input_locations_struct.wgsl.expected.glsl
@@ -1,6 +1,10 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) in int loc0_1;
+layout(location = 1) in uint loc1_1;
+layout(location = 2) in float loc2_1;
+layout(location = 3) in vec4 loc3_1;
 struct VertexInputs {
   int loc0;
   uint loc1;
@@ -8,18 +12,7 @@
   vec4 loc3;
 };
 
-struct tint_symbol_2 {
-  int loc0;
-  uint loc1;
-  float loc2;
-  vec4 loc3;
-};
-
-struct tint_symbol_3 {
-  vec4 value;
-};
-
-vec4 tint_symbol_inner(VertexInputs inputs) {
+vec4 tint_symbol(VertexInputs inputs) {
   int i = inputs.loc0;
   uint u = inputs.loc1;
   float f = inputs.loc2;
@@ -27,29 +20,11 @@
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol_3 tint_symbol(tint_symbol_2 tint_symbol_1) {
-  VertexInputs tint_symbol_4 = VertexInputs(tint_symbol_1.loc0, tint_symbol_1.loc1, tint_symbol_1.loc2, tint_symbol_1.loc3);
-  vec4 inner_result = tint_symbol_inner(tint_symbol_4);
-  tint_symbol_3 wrapper_result = tint_symbol_3(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-layout(location = 0) in int loc0;
-layout(location = 1) in uint loc1;
-layout(location = 2) in float loc2;
-layout(location = 3) in vec4 loc3;
-
-
 void main() {
-  tint_symbol_2 inputs;
-  inputs.loc0 = loc0;
-  inputs.loc1 = loc1;
-  inputs.loc2 = loc2;
-  inputs.loc3 = loc3;
-  tint_symbol_3 outputs;
-  outputs = tint_symbol(inputs);
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  VertexInputs tint_symbol_1 = VertexInputs(loc0_1, loc1_1, loc2_1, loc3_1);
+  vec4 inner_result = tint_symbol(tint_symbol_1);
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
diff --git a/test/shader_io/vertex_input_mixed.wgsl.expected.glsl b/test/shader_io/vertex_input_mixed.wgsl.expected.glsl
index 2979637..86480f6 100644
--- a/test/shader_io/vertex_input_mixed.wgsl.expected.glsl
+++ b/test/shader_io/vertex_input_mixed.wgsl.expected.glsl
@@ -1,6 +1,10 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) in int loc0_1;
+layout(location = 1) in uint loc1_1;
+layout(location = 2) in float loc2_1;
+layout(location = 3) in vec4 loc3_1;
 struct VertexInputs0 {
   uint vertex_index;
   int loc0;
@@ -11,20 +15,7 @@
   vec4 loc3;
 };
 
-struct tint_symbol_2 {
-  int loc0;
-  uint loc1;
-  float loc2;
-  vec4 loc3;
-  uint vertex_index;
-  uint instance_index;
-};
-
-struct tint_symbol_3 {
-  vec4 value;
-};
-
-vec4 tint_symbol_inner(VertexInputs0 inputs0, uint loc1, uint instance_index, VertexInputs1 inputs1) {
+vec4 tint_symbol(VertexInputs0 inputs0, uint loc1, uint instance_index, VertexInputs1 inputs1) {
   uint foo = (inputs0.vertex_index + instance_index);
   int i = inputs0.loc0;
   uint u = loc1;
@@ -33,34 +24,12 @@
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol_3 tint_symbol(tint_symbol_2 tint_symbol_1) {
-  VertexInputs0 tint_symbol_4 = VertexInputs0(tint_symbol_1.vertex_index, tint_symbol_1.loc0);
-  VertexInputs1 tint_symbol_5 = VertexInputs1(tint_symbol_1.loc2, tint_symbol_1.loc3);
-  vec4 inner_result = tint_symbol_inner(tint_symbol_4, tint_symbol_1.loc1, tint_symbol_1.instance_index, tint_symbol_5);
-  tint_symbol_3 wrapper_result = tint_symbol_3(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-layout(location = 0) in int loc0;
-layout(location = 1) in uint loc1;
-layout(location = 2) in float loc2;
-layout(location = 3) in vec4 loc3;
-
-
-
-
 void main() {
-  tint_symbol_2 inputs;
-  inputs.loc0 = loc0;
-  inputs.loc1 = loc1;
-  inputs.loc2 = loc2;
-  inputs.loc3 = loc3;
-  inputs.vertex_index = uint(gl_VertexID);
-  inputs.instance_index = uint(gl_InstanceID);
-  tint_symbol_3 outputs;
-  outputs = tint_symbol(inputs);
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  VertexInputs0 tint_symbol_1 = VertexInputs0(uint(gl_VertexID), loc0_1);
+  VertexInputs1 tint_symbol_2 = VertexInputs1(loc2_1, loc3_1);
+  vec4 inner_result = tint_symbol(tint_symbol_1, loc1_1, uint(gl_InstanceID), tint_symbol_2);
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
diff --git a/test/shader_io/vertex_output_builtins.wgsl.expected.glsl b/test/shader_io/vertex_output_builtins.wgsl.expected.glsl
index b963e62..eda2ca2 100644
--- a/test/shader_io/vertex_output_builtins.wgsl.expected.glsl
+++ b/test/shader_io/vertex_output_builtins.wgsl.expected.glsl
@@ -1,27 +1,14 @@
 #version 310 es
 precision mediump float;
 
-struct tint_symbol_1 {
-  vec4 value;
-};
-
-vec4 tint_symbol_inner() {
+vec4 tint_symbol() {
   return vec4(1.0f, 2.0f, 3.0f, 4.0f);
 }
 
-tint_symbol_1 tint_symbol() {
-  vec4 inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  gl_Position = outputs.value;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  vec4 inner_result = tint_symbol();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
diff --git a/test/shader_io/vertex_output_builtins_struct.wgsl.expected.glsl b/test/shader_io/vertex_output_builtins_struct.wgsl.expected.glsl
index 5206366..07fcbdc 100644
--- a/test/shader_io/vertex_output_builtins_struct.wgsl.expected.glsl
+++ b/test/shader_io/vertex_output_builtins_struct.wgsl.expected.glsl
@@ -5,28 +5,15 @@
   vec4 position;
 };
 
-struct tint_symbol_1 {
-  vec4 position;
-};
-
-VertexOutputs tint_symbol_inner() {
-  VertexOutputs tint_symbol_2 = VertexOutputs(vec4(1.0f, 2.0f, 3.0f, 4.0f));
-  return tint_symbol_2;
+VertexOutputs tint_symbol() {
+  VertexOutputs tint_symbol_1 = VertexOutputs(vec4(1.0f, 2.0f, 3.0f, 4.0f));
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  VertexOutputs inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.position = inner_result.position;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  gl_Position = outputs.position;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  VertexOutputs inner_result = tint_symbol();
+  gl_Position = inner_result.position;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
diff --git a/test/shader_io/vertex_output_locations_struct.wgsl.expected.glsl b/test/shader_io/vertex_output_locations_struct.wgsl.expected.glsl
index a1f89ae..ba1a70d 100644
--- a/test/shader_io/vertex_output_locations_struct.wgsl.expected.glsl
+++ b/test/shader_io/vertex_output_locations_struct.wgsl.expected.glsl
@@ -1,6 +1,10 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) flat out int loc0_1;
+layout(location = 1) flat out uint loc1_1;
+layout(location = 2) out float loc2_1;
+layout(location = 3) out vec4 loc3_1;
 struct VertexOutputs {
   int loc0;
   uint loc1;
@@ -9,44 +13,19 @@
   vec4 position;
 };
 
-struct tint_symbol_1 {
-  int loc0;
-  uint loc1;
-  float loc2;
-  vec4 loc3;
-  vec4 position;
-};
-
-VertexOutputs tint_symbol_inner() {
-  VertexOutputs tint_symbol_2 = VertexOutputs(1, 1u, 1.0f, vec4(1.0f, 2.0f, 3.0f, 4.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  return tint_symbol_2;
+VertexOutputs tint_symbol() {
+  VertexOutputs tint_symbol_1 = VertexOutputs(1, 1u, 1.0f, vec4(1.0f, 2.0f, 3.0f, 4.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  VertexOutputs inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(0, 0u, 0.0f, vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.loc0 = inner_result.loc0;
-  wrapper_result.loc1 = inner_result.loc1;
-  wrapper_result.loc2 = inner_result.loc2;
-  wrapper_result.loc3 = inner_result.loc3;
-  wrapper_result.position = inner_result.position;
-  return wrapper_result;
-}
-layout(location = 0) flat out int loc0;
-layout(location = 1) flat out uint loc1;
-layout(location = 2) out float loc2;
-layout(location = 3) out vec4 loc3;
-
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  loc0 = outputs.loc0;
-  loc1 = outputs.loc1;
-  loc2 = outputs.loc2;
-  loc3 = outputs.loc3;
-  gl_Position = outputs.position;
-  gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
-  gl_Position.y = -gl_Position.y;
+  VertexOutputs inner_result = tint_symbol();
+  loc0_1 = inner_result.loc0;
+  loc1_1 = inner_result.loc1;
+  loc2_1 = inner_result.loc2;
+  loc3_1 = inner_result.loc3;
+  gl_Position = inner_result.position;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
 }
-
diff --git a/test/shadowing/alias/let.wgsl.expected.glsl b/test/shadowing/alias/let.wgsl.expected.glsl
index f084e64..5044436 100644
--- a/test/shadowing/alias/let.wgsl.expected.glsl
+++ b/test/shadowing/alias/let.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   {
     int a_1 = 0;
diff --git a/test/shadowing/alias/param.wgsl.expected.glsl b/test/shadowing/alias/param.wgsl.expected.glsl
index b685a99..5a0a77e 100644
--- a/test/shadowing/alias/param.wgsl.expected.glsl
+++ b/test/shadowing/alias/param.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f(int a_1) {
   int b = a_1;
 }
diff --git a/test/shadowing/alias/var.wgsl.expected.glsl b/test/shadowing/alias/var.wgsl.expected.glsl
index f084e64..5044436 100644
--- a/test/shadowing/alias/var.wgsl.expected.glsl
+++ b/test/shadowing/alias/var.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   {
     int a_1 = 0;
diff --git a/test/shadowing/function/let.wgsl.expected.glsl b/test/shadowing/function/let.wgsl.expected.glsl
index ad0de52..d653a86 100644
--- a/test/shadowing/function/let.wgsl.expected.glsl
+++ b/test/shadowing/function/let.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void a() {
   {
     int a_1 = 1;
diff --git a/test/shadowing/function/param.wgsl.expected.glsl b/test/shadowing/function/param.wgsl.expected.glsl
index 00ac116..56a01bd 100644
--- a/test/shadowing/function/param.wgsl.expected.glsl
+++ b/test/shadowing/function/param.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void a(int a_1) {
   int b = a_1;
 }
diff --git a/test/shadowing/function/var.wgsl.expected.glsl b/test/shadowing/function/var.wgsl.expected.glsl
index 6b283c8..9f37e92 100644
--- a/test/shadowing/function/var.wgsl.expected.glsl
+++ b/test/shadowing/function/var.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 struct a {
   int a;
 };
diff --git a/test/shadowing/param/function.wgsl.expected.glsl b/test/shadowing/param/function.wgsl.expected.glsl
index 3a4f23e..f039a15 100644
--- a/test/shadowing/param/function.wgsl.expected.glsl
+++ b/test/shadowing/param/function.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void a(int a_1) {
   {
     int a_2 = a_1;
diff --git a/test/shadowing/param/let.wgsl.expected.glsl b/test/shadowing/param/let.wgsl.expected.glsl
index 6c7a3b5..1b4f45f 100644
--- a/test/shadowing/param/let.wgsl.expected.glsl
+++ b/test/shadowing/param/let.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f(int a) {
   {
     int b = a;
diff --git a/test/shadowing/param/var.wgsl.expected.glsl b/test/shadowing/param/var.wgsl.expected.glsl
index fc665c4..b78cdf3 100644
--- a/test/shadowing/param/var.wgsl.expected.glsl
+++ b/test/shadowing/param/var.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f(int a) {
   {
     int a_1 = a;
diff --git a/test/shadowing/struct/let.wgsl.expected.glsl b/test/shadowing/struct/let.wgsl.expected.glsl
index 6b283c8..9f37e92 100644
--- a/test/shadowing/struct/let.wgsl.expected.glsl
+++ b/test/shadowing/struct/let.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 struct a {
   int a;
 };
diff --git a/test/shadowing/struct/param.wgsl.expected.glsl b/test/shadowing/struct/param.wgsl.expected.glsl
index e039dde..7ede4e9 100644
--- a/test/shadowing/struct/param.wgsl.expected.glsl
+++ b/test/shadowing/struct/param.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 struct a {
   int a;
 };
diff --git a/test/shadowing/struct/var.wgsl.expected.glsl b/test/shadowing/struct/var.wgsl.expected.glsl
index 6b283c8..9f37e92 100644
--- a/test/shadowing/struct/var.wgsl.expected.glsl
+++ b/test/shadowing/struct/var.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 struct a {
   int a;
 };
diff --git a/test/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_body.wgsl.expected.glsl b/test/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_body.wgsl.expected.glsl
index a66dfcd..70da6a8 100644
--- a/test/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_body.wgsl.expected.glsl
+++ b/test/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_body.wgsl.expected.glsl
@@ -17,7 +17,6 @@
   uint i;
 } uniforms;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   InnerS v = InnerS(0);
   OuterS s1 = OuterS(InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0)));
@@ -26,10 +25,10 @@
       s1.a1[uniforms.i] = v;
     }
   }
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_continuing.wgsl.expected.glsl b/test/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_continuing.wgsl.expected.glsl
index 4b6e2b5..b1e9af3 100644
--- a/test/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_continuing.wgsl.expected.glsl
+++ b/test/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_continuing.wgsl.expected.glsl
@@ -17,7 +17,6 @@
   uint i;
 } uniforms;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   InnerS v = InnerS(0);
   OuterS s1 = OuterS(InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0)));
@@ -26,10 +25,10 @@
       i = (i + 1);
     }
   }
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_init.wgsl.expected.glsl b/test/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_init.wgsl.expected.glsl
index ae870ac..656ae48 100644
--- a/test/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_init.wgsl.expected.glsl
+++ b/test/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_init.wgsl.expected.glsl
@@ -17,7 +17,6 @@
   uint i;
 } uniforms;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   InnerS v = InnerS(0);
   OuterS s1 = OuterS(InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0)));
@@ -26,10 +25,10 @@
     for(s1.a1[uniforms.i] = v; (i < 4); i = (i + 1)) {
     }
   }
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/statements/assign/indexed_assign_to_array_in_struct/indexing_with_side_effect_func.wgsl.expected.glsl b/test/statements/assign/indexed_assign_to_array_in_struct/indexing_with_side_effect_func.wgsl.expected.glsl
index 6f26858..a5fbc3c 100644
--- a/test/statements/assign/indexed_assign_to_array_in_struct/indexing_with_side_effect_func.wgsl.expected.glsl
+++ b/test/statements/assign/indexed_assign_to_array_in_struct/indexing_with_side_effect_func.wgsl.expected.glsl
@@ -29,15 +29,14 @@
   uint j;
 } uniforms;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   InnerS v = InnerS(0);
   OuterS s = OuterS(S1[8](S1(InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0))), S1(InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0))), S1(InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0))), S1(InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0))), S1(InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0))), S1(InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0))), S1(InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0))), S1(InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0)))));
   s.a1[getNextIndex()].a2[uniforms.j] = v;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/statements/assign/indexed_assign_to_array_in_struct/struct_array.wgsl.expected.glsl b/test/statements/assign/indexed_assign_to_array_in_struct/struct_array.wgsl.expected.glsl
index 3a11502..423aebc 100644
--- a/test/statements/assign/indexed_assign_to_array_in_struct/struct_array.wgsl.expected.glsl
+++ b/test/statements/assign/indexed_assign_to_array_in_struct/struct_array.wgsl.expected.glsl
@@ -17,15 +17,14 @@
   uint i;
 } uniforms;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   InnerS v = InnerS(0);
   OuterS s1 = OuterS(InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0)));
   s1.a1[uniforms.i] = v;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/statements/assign/indexed_assign_to_array_in_struct/struct_array_array.wgsl.expected.glsl b/test/statements/assign/indexed_assign_to_array_in_struct/struct_array_array.wgsl.expected.glsl
index 5a6cc5e..da1702c 100644
--- a/test/statements/assign/indexed_assign_to_array_in_struct/struct_array_array.wgsl.expected.glsl
+++ b/test/statements/assign/indexed_assign_to_array_in_struct/struct_array_array.wgsl.expected.glsl
@@ -19,15 +19,14 @@
   uint j;
 } uniforms;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   InnerS v = InnerS(0);
   OuterS s1 = OuterS(InnerS[8][8](InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0)), InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0)), InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0)), InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0)), InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0)), InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0)), InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0)), InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0))));
   s1.a1[uniforms.i][uniforms.j] = v;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct.wgsl.expected.glsl b/test/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct.wgsl.expected.glsl
index 7501db2..8a70eb4 100644
--- a/test/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct.wgsl.expected.glsl
+++ b/test/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct.wgsl.expected.glsl
@@ -21,15 +21,14 @@
   uint i;
 } uniforms;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   InnerS v = InnerS(0);
   OuterS s1 = OuterS(S1[8](S1(InnerS(0)), S1(InnerS(0)), S1(InnerS(0)), S1(InnerS(0)), S1(InnerS(0)), S1(InnerS(0)), S1(InnerS(0)), S1(InnerS(0))));
   s1.a1[uniforms.i].s2 = v;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct_array.wgsl.expected.glsl b/test/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct_array.wgsl.expected.glsl
index ac27dfd..fc3b5d0 100644
--- a/test/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct_array.wgsl.expected.glsl
+++ b/test/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct_array.wgsl.expected.glsl
@@ -23,15 +23,14 @@
   uint j;
 } uniforms;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   InnerS v = InnerS(0);
   OuterS s = OuterS(S1[8](S1(InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0))), S1(InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0))), S1(InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0))), S1(InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0))), S1(InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0))), S1(InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0))), S1(InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0))), S1(InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0)))));
   s.a1[uniforms.i].a2[uniforms.j] = v;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array.wgsl.expected.glsl b/test/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array.wgsl.expected.glsl
index 4d78cf6..cf0aef0 100644
--- a/test/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array.wgsl.expected.glsl
+++ b/test/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array.wgsl.expected.glsl
@@ -16,14 +16,13 @@
 layout(binding = 0) buffer OuterS_1 {
   InnerS a1[];
 } s1;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   InnerS v = InnerS(0);
   s1.a1[uniforms.i] = v;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array_struct_array.wgsl.expected.glsl b/test/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array_struct_array.wgsl.expected.glsl
index f31f4e5..28a11c1 100644
--- a/test/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array_struct_array.wgsl.expected.glsl
+++ b/test/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array_struct_array.wgsl.expected.glsl
@@ -22,14 +22,13 @@
 layout(binding = 0) buffer OuterS_1 {
   S1 a1[];
 } s;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   InnerS v = InnerS(0);
   s.a1[uniforms.i].a2[uniforms.j] = v;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/statements/assign/indexed_assign_to_array_in_struct/struct_matrix.wgsl.expected.glsl b/test/statements/assign/indexed_assign_to_array_in_struct/struct_matrix.wgsl.expected.glsl
index e950c13..98dbfd6 100644
--- a/test/statements/assign/indexed_assign_to_array_in_struct/struct_matrix.wgsl.expected.glsl
+++ b/test/statements/assign/indexed_assign_to_array_in_struct/struct_matrix.wgsl.expected.glsl
@@ -13,15 +13,14 @@
   uint i;
 } uniforms;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   OuterS s1 = OuterS(mat2x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
   s1.m1[uniforms.i] = vec4(1.0f);
   s1.m1[uniforms.i][uniforms.i] = 1.0f;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/statements/assign/indexed_assign_to_array_in_struct/struct_multiple_arrays.wgsl.expected.glsl b/test/statements/assign/indexed_assign_to_array_in_struct/struct_multiple_arrays.wgsl.expected.glsl
index f1183be..a4067c0 100644
--- a/test/statements/assign/indexed_assign_to_array_in_struct/struct_multiple_arrays.wgsl.expected.glsl
+++ b/test/statements/assign/indexed_assign_to_array_in_struct/struct_multiple_arrays.wgsl.expected.glsl
@@ -18,16 +18,15 @@
   uint i;
 } uniforms;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   InnerS v = InnerS(0);
   OuterS s1 = OuterS(InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0)), InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0)));
   s1.a1[uniforms.i] = v;
   s1.a2[uniforms.i] = v;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/statements/assign/indexed_assign_to_array_in_struct/struct_struct_array.wgsl.expected.glsl b/test/statements/assign/indexed_assign_to_array_in_struct/struct_struct_array.wgsl.expected.glsl
index 9a696fb..a7d675b 100644
--- a/test/statements/assign/indexed_assign_to_array_in_struct/struct_struct_array.wgsl.expected.glsl
+++ b/test/statements/assign/indexed_assign_to_array_in_struct/struct_struct_array.wgsl.expected.glsl
@@ -21,15 +21,14 @@
   uint i;
 } uniforms;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   InnerS v = InnerS(0);
   OuterS s1 = OuterS(S1(InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0))));
   s1.s2.a[uniforms.i] = v;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/statements/assign/indexed_assign_to_array_in_struct/struct_vector.wgsl.expected.glsl b/test/statements/assign/indexed_assign_to_array_in_struct/struct_vector.wgsl.expected.glsl
index d3ceff4..8cda8e5 100644
--- a/test/statements/assign/indexed_assign_to_array_in_struct/struct_vector.wgsl.expected.glsl
+++ b/test/statements/assign/indexed_assign_to_array_in_struct/struct_vector.wgsl.expected.glsl
@@ -13,14 +13,13 @@
   uint i;
 } uniforms;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   OuterS s1 = OuterS(vec3(0.0f, 0.0f, 0.0f));
   s1.v1[uniforms.i] = 1.0f;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/statements/assign/indexed_assign_to_array_in_struct/vector_assign.wgsl.expected.glsl b/test/statements/assign/indexed_assign_to_array_in_struct/vector_assign.wgsl.expected.glsl
index e6f7d43..7ee613c 100644
--- a/test/statements/assign/indexed_assign_to_array_in_struct/vector_assign.wgsl.expected.glsl
+++ b/test/statements/assign/indexed_assign_to_array_in_struct/vector_assign.wgsl.expected.glsl
@@ -17,16 +17,15 @@
   return (i + 1u);
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   OuterS s1 = OuterS(uint[8](0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u));
   vec3 v = vec3(0.0f, 0.0f, 0.0f);
   v[s1.a1[uniforms.i]] = 1.0f;
   v[f(s1.a1[uniforms.i])] = 1.0f;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/statements/assign/indexed_assign_to_array_in_struct/via_pointer.wgsl.expected.glsl b/test/statements/assign/indexed_assign_to_array_in_struct/via_pointer.wgsl.expected.glsl
index 5f8a2aa..b1c086f3 100644
--- a/test/statements/assign/indexed_assign_to_array_in_struct/via_pointer.wgsl.expected.glsl
+++ b/test/statements/assign/indexed_assign_to_array_in_struct/via_pointer.wgsl.expected.glsl
@@ -17,16 +17,15 @@
   uint i;
 } uniforms;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   InnerS v = InnerS(0);
   OuterS s1 = OuterS(InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0)));
   uint p_save = uniforms.i;
   s1.a1[p_save] = v;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/statements/assign/indexed_assign_to_array_in_struct/via_pointer_arg.wgsl.expected.glsl b/test/statements/assign/indexed_assign_to_array_in_struct/via_pointer_arg.wgsl.expected.glsl
index c9b611c..de6dbc7 100644
--- a/test/statements/assign/indexed_assign_to_array_in_struct/via_pointer_arg.wgsl.expected.glsl
+++ b/test/statements/assign/indexed_assign_to_array_in_struct/via_pointer_arg.wgsl.expected.glsl
@@ -22,14 +22,13 @@
   p.a1[uniforms.i] = v;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   OuterS s1 = OuterS(InnerS[8](InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0), InnerS(0)));
   f(s1);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/statements/assign/phony/addr_of_non_constructable.wgsl.expected.glsl b/test/statements/assign/phony/addr_of_non_constructable.wgsl.expected.glsl
index 425e6a4..09eb486 100644
--- a/test/statements/assign/phony/addr_of_non_constructable.wgsl.expected.glsl
+++ b/test/statements/assign/phony/addr_of_non_constructable.wgsl.expected.glsl
@@ -4,12 +4,11 @@
 layout(binding = 0) buffer S_1 {
   int arr[];
 } s;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/statements/assign/phony/addr_of_runtime_array.wgsl.expected.glsl b/test/statements/assign/phony/addr_of_runtime_array.wgsl.expected.glsl
index 425e6a4..09eb486 100644
--- a/test/statements/assign/phony/addr_of_runtime_array.wgsl.expected.glsl
+++ b/test/statements/assign/phony/addr_of_runtime_array.wgsl.expected.glsl
@@ -4,12 +4,11 @@
 layout(binding = 0) buffer S_1 {
   int arr[];
 } s;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/statements/assign/phony/call.wgsl.expected.glsl b/test/statements/assign/phony/call.wgsl.expected.glsl
index 2d825c6..dc676cb 100644
--- a/test/statements/assign/phony/call.wgsl.expected.glsl
+++ b/test/statements/assign/phony/call.wgsl.expected.glsl
@@ -5,13 +5,12 @@
   return ((a * b) + c);
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   f(1, 2, 3);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/statements/assign/phony/multiple_side_effects.wgsl.expected.glsl b/test/statements/assign/phony/multiple_side_effects.wgsl.expected.glsl
index e615282..9e1281f 100644
--- a/test/statements/assign/phony/multiple_side_effects.wgsl.expected.glsl
+++ b/test/statements/assign/phony/multiple_side_effects.wgsl.expected.glsl
@@ -8,13 +8,12 @@
 void phony_sink(int p0, int p1, int p2) {
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   phony_sink(f(1, 2, 3), f(4, 5, 6), f(7, f(8, 9, 10), 11));
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/statements/assign/phony/storage_buffer.wgsl.expected.glsl b/test/statements/assign/phony/storage_buffer.wgsl.expected.glsl
index 1e69b69..44d8fcc 100644
--- a/test/statements/assign/phony/storage_buffer.wgsl.expected.glsl
+++ b/test/statements/assign/phony/storage_buffer.wgsl.expected.glsl
@@ -8,12 +8,11 @@
 layout(binding = 0) buffer S_1 {
   int i;
 } s;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/statements/assign/phony/uniform_buffer.wgsl.expected.glsl b/test/statements/assign/phony/uniform_buffer.wgsl.expected.glsl
index 709afc7..51b4213 100644
--- a/test/statements/assign/phony/uniform_buffer.wgsl.expected.glsl
+++ b/test/statements/assign/phony/uniform_buffer.wgsl.expected.glsl
@@ -9,12 +9,11 @@
   int i;
 } u;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/statements/for/basic.wgsl.expected.glsl b/test/statements/for/basic.wgsl.expected.glsl
index b76e0d4..a624dcb 100644
--- a/test/statements/for/basic.wgsl.expected.glsl
+++ b/test/statements/for/basic.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void some_loop_body() {
 }
 
diff --git a/test/statements/for/complex.wgsl.expected.glsl b/test/statements/for/complex.wgsl.expected.glsl
index 14f0d9f..39f675d 100644
--- a/test/statements/for/complex.wgsl.expected.glsl
+++ b/test/statements/for/complex.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void some_loop_body() {
 }
 
diff --git a/test/statements/for/condition/array_ctor.wgsl.expected.glsl b/test/statements/for/condition/array_ctor.wgsl.expected.glsl
index 0bf1e03..42330bb 100644
--- a/test/statements/for/condition/array_ctor.wgsl.expected.glsl
+++ b/test/statements/for/condition/array_ctor.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   int i = 0;
   while (true) {
diff --git a/test/statements/for/condition/basic.wgsl.expected.glsl b/test/statements/for/condition/basic.wgsl.expected.glsl
index fb35e67..5e1d92f 100644
--- a/test/statements/for/condition/basic.wgsl.expected.glsl
+++ b/test/statements/for/condition/basic.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   int i = 0;
   {
diff --git a/test/statements/for/condition/struct_ctor.wgsl.expected.glsl b/test/statements/for/condition/struct_ctor.wgsl.expected.glsl
index 10033aa..853168f 100644
--- a/test/statements/for/condition/struct_ctor.wgsl.expected.glsl
+++ b/test/statements/for/condition/struct_ctor.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 struct S {
   int i;
 };
diff --git a/test/statements/for/continuing/array_ctor.wgsl.expected.glsl b/test/statements/for/continuing/array_ctor.wgsl.expected.glsl
index 35bd624..d40e419 100644
--- a/test/statements/for/continuing/array_ctor.wgsl.expected.glsl
+++ b/test/statements/for/continuing/array_ctor.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   int i = 0;
   while (true) {
diff --git a/test/statements/for/continuing/basic.wgsl.expected.glsl b/test/statements/for/continuing/basic.wgsl.expected.glsl
index 812cf5c..cb625ad 100644
--- a/test/statements/for/continuing/basic.wgsl.expected.glsl
+++ b/test/statements/for/continuing/basic.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   int i = 0;
   {
diff --git a/test/statements/for/continuing/struct_ctor.wgsl.expected.glsl b/test/statements/for/continuing/struct_ctor.wgsl.expected.glsl
index 89e6829..014a37a 100644
--- a/test/statements/for/continuing/struct_ctor.wgsl.expected.glsl
+++ b/test/statements/for/continuing/struct_ctor.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 struct S {
   int i;
 };
diff --git a/test/statements/for/empty.wgsl.expected.glsl b/test/statements/for/empty.wgsl.expected.glsl
index 65c9bf3..097b941 100644
--- a/test/statements/for/empty.wgsl.expected.glsl
+++ b/test/statements/for/empty.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   {
     for(; false; ) {
diff --git a/test/statements/for/initializer/array_ctor.wgsl.expected.glsl b/test/statements/for/initializer/array_ctor.wgsl.expected.glsl
index f91ffbf..7a30f6d 100644
--- a/test/statements/for/initializer/array_ctor.wgsl.expected.glsl
+++ b/test/statements/for/initializer/array_ctor.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   int tint_symbol[1] = int[1](1);
   {
diff --git a/test/statements/for/initializer/basic.wgsl.expected.glsl b/test/statements/for/initializer/basic.wgsl.expected.glsl
index f65c124..de3e1e6 100644
--- a/test/statements/for/initializer/basic.wgsl.expected.glsl
+++ b/test/statements/for/initializer/basic.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   {
     for(int i = 0; false; ) {
diff --git a/test/statements/for/initializer/struct_ctor.wgsl.expected.glsl b/test/statements/for/initializer/struct_ctor.wgsl.expected.glsl
index 330a47c..834287f 100644
--- a/test/statements/for/initializer/struct_ctor.wgsl.expected.glsl
+++ b/test/statements/for/initializer/struct_ctor.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 struct S {
   int i;
 };
diff --git a/test/statements/for/scoping.wgsl.expected.glsl b/test/statements/for/scoping.wgsl.expected.glsl
index 3d8df6a..d9ee405 100644
--- a/test/statements/for/scoping.wgsl.expected.glsl
+++ b/test/statements/for/scoping.wgsl.expected.glsl
@@ -5,11 +5,6 @@
 void unused_entry_point() {
   return;
 }
-
-void main() {
-  unused_entry_point();
-}
-
 void f() {
   {
     for(int must_not_collide = 0; ; ) {
diff --git a/test/statements/switch/common.wgsl.expected.glsl b/test/statements/switch/common.wgsl.expected.glsl
index c0345aa..bd29110 100644
--- a/test/statements/switch/common.wgsl.expected.glsl
+++ b/test/statements/switch/common.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   int i = 0;
   int result = 0;
@@ -23,10 +22,10 @@
       break;
     }
   }
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/statements/switch/fallthrough.wgsl.expected.glsl b/test/statements/switch/fallthrough.wgsl.expected.glsl
index f5215bf..6a4628d 100644
--- a/test/statements/switch/fallthrough.wgsl.expected.glsl
+++ b/test/statements/switch/fallthrough.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   int i = 0;
   switch(i) {
@@ -12,10 +11,10 @@
       break;
     }
   }
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/statements/switch/only_default_case.wgsl.expected.glsl b/test/statements/switch/only_default_case.wgsl.expected.glsl
index e1cb68b..0e94201 100644
--- a/test/statements/switch/only_default_case.wgsl.expected.glsl
+++ b/test/statements/switch/only_default_case.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void f() {
   int i = 0;
   int result = 0;
@@ -11,10 +10,10 @@
       break;
     }
   }
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   f();
+  return;
 }
-
diff --git a/test/struct/type_constructor.wgsl.expected.glsl b/test/struct/type_constructor.wgsl.expected.glsl
index f32e92e..12a8bfd 100644
--- a/test/struct/type_constructor.wgsl.expected.glsl
+++ b/test/struct/type_constructor.wgsl.expected.glsl
@@ -23,7 +23,6 @@
   int a[2];
 };
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   int x = 42;
   S1 empty = S1(0, 0, 0, 0);
@@ -60,10 +59,10 @@
   int tint_symbol_18[2] = int[2](1, (aosoa_nonempty[0].a[0] + 1));
   T tint_symbol_19 = T(tint_symbol_18);
   T aosoa_nonempty_with_expr[2] = T[2](tint_symbol_19, aosoa_nonempty[1]);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/types/function_scope_declarations.wgsl.expected.glsl b/test/types/function_scope_declarations.wgsl.expected.glsl
index 735d215..942b076 100644
--- a/test/types/function_scope_declarations.wgsl.expected.glsl
+++ b/test/types/function_scope_declarations.wgsl.expected.glsl
@@ -5,7 +5,6 @@
   float a;
 };
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   bool bool_var = false;
   bool bool_let = false;
@@ -27,10 +26,10 @@
   float arr_let[4] = float[4](0.0f, 0.0f, 0.0f, 0.0f);
   S struct_var = S(0.0f);
   S struct_let = S(0.0f);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/types/function_scope_var_conversions.wgsl.expected.glsl b/test/types/function_scope_var_conversions.wgsl.expected.glsl
index b42e9ae..fd75b67 100644
--- a/test/types/function_scope_var_conversions.wgsl.expected.glsl
+++ b/test/types/function_scope_var_conversions.wgsl.expected.glsl
@@ -1,7 +1,6 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   bool bool_var1 = bool(123u);
   bool bool_var2 = bool(123);
@@ -24,10 +23,10 @@
   uvec3 v3u32_var3 = uvec3(bvec3(true));
   bvec3 v3bool_var4 = bvec3(bvec2(vec2(123.0f)), true);
   bvec4 v4bool_var5 = bvec4(bvec2(vec2(123.0f, 0.0f)), bvec2(true, bool(float(0.0f))));
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/types/module_scope_let.wgsl.expected.glsl b/test/types/module_scope_let.wgsl.expected.glsl
index aca7b16..5890360 100644
--- a/test/types/module_scope_let.wgsl.expected.glsl
+++ b/test/types/module_scope_let.wgsl.expected.glsl
@@ -5,12 +5,11 @@
   float a;
 };
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/types/module_scope_var.wgsl.expected.glsl b/test/types/module_scope_var.wgsl.expected.glsl
index 06071a3..75f8090 100644
--- a/test/types/module_scope_var.wgsl.expected.glsl
+++ b/test/types/module_scope_var.wgsl.expected.glsl
@@ -15,7 +15,6 @@
 mat2x3 m2x3_var = mat2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
 float arr_var[4] = float[4](0.0f, 0.0f, 0.0f, 0.0f);
 S struct_var = S(0.0f);
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   bool_var = false;
   i32_var = 0;
@@ -29,10 +28,10 @@
   arr_var = tint_symbol_1;
   S tint_symbol_2 = S(0.0f);
   struct_var = tint_symbol_2;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/types/module_scope_var_conversions.wgsl.expected.glsl b/test/types/module_scope_var_conversions.wgsl.expected.glsl
index 14db4ac..75cc417 100644
--- a/test/types/module_scope_var_conversions.wgsl.expected.glsl
+++ b/test/types/module_scope_var_conversions.wgsl.expected.glsl
@@ -21,7 +21,6 @@
 uvec3 v3u32_var3 = uvec3(bvec3(true));
 bvec3 v3bool_var4 = bvec3(bvec2(vec2(123.0f)), true);
 bvec4 v4bool_var5 = bvec4(bvec2(vec2(123.0f, 0.0f)), bvec2(true, bool(float(0.0f))));
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   bool_var1 = false;
   bool_var2 = false;
@@ -43,10 +42,10 @@
   v3u32_var1 = uvec3(0u, 0u, 0u);
   v3u32_var2 = uvec3(0u, 0u, 0u);
   v3u32_var3 = uvec3(0u, 0u, 0u);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/types/module_scope_var_initializers.wgsl.expected.glsl b/test/types/module_scope_var_initializers.wgsl.expected.glsl
index 06071a3..75f8090 100644
--- a/test/types/module_scope_var_initializers.wgsl.expected.glsl
+++ b/test/types/module_scope_var_initializers.wgsl.expected.glsl
@@ -15,7 +15,6 @@
 mat2x3 m2x3_var = mat2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
 float arr_var[4] = float[4](0.0f, 0.0f, 0.0f, 0.0f);
 S struct_var = S(0.0f);
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   bool_var = false;
   i32_var = 0;
@@ -29,10 +28,10 @@
   arr_var = tint_symbol_1;
   S tint_symbol_2 = S(0.0f);
   struct_var = tint_symbol_2;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/types/parameters.wgsl.expected.glsl b/test/types/parameters.wgsl.expected.glsl
index aca7b16..5890360 100644
--- a/test/types/parameters.wgsl.expected.glsl
+++ b/test/types/parameters.wgsl.expected.glsl
@@ -5,12 +5,11 @@
   float a;
 };
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/types/return_types.wgsl.expected.glsl b/test/types/return_types.wgsl.expected.glsl
index aca7b16..5890360 100644
--- a/test/types/return_types.wgsl.expected.glsl
+++ b/test/types/return_types.wgsl.expected.glsl
@@ -5,12 +5,11 @@
   float a;
 };
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/types/sampler.wgsl.expected.glsl b/test/types/sampler.wgsl.expected.glsl
index 4be746b..035eaa1 100644
--- a/test/types/sampler.wgsl.expected.glsl
+++ b/test/types/sampler.wgsl.expected.glsl
@@ -1,12 +1,11 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/types/struct_members.wgsl.expected.glsl b/test/types/struct_members.wgsl.expected.glsl
index d123ec4..edf65ff 100644
--- a/test/types/struct_members.wgsl.expected.glsl
+++ b/test/types/struct_members.wgsl.expected.glsl
@@ -18,13 +18,12 @@
   S_inner member_struct;
 };
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   S s = S(false, 0, 0u, 0.0f, ivec2(0, 0), uvec3(0u, 0u, 0u), vec4(0.0f, 0.0f, 0.0f, 0.0f), mat2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f), float[4](0.0f, 0.0f, 0.0f, 0.0f), S_inner(0.0f));
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/types/texture/depth/2d.wgsl.expected.glsl b/test/types/texture/depth/2d.wgsl.expected.glsl
index 4be746b..035eaa1 100644
--- a/test/types/texture/depth/2d.wgsl.expected.glsl
+++ b/test/types/texture/depth/2d.wgsl.expected.glsl
@@ -1,12 +1,11 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/types/texture/depth/2d_array.wgsl.expected.glsl b/test/types/texture/depth/2d_array.wgsl.expected.glsl
index 4be746b..035eaa1 100644
--- a/test/types/texture/depth/2d_array.wgsl.expected.glsl
+++ b/test/types/texture/depth/2d_array.wgsl.expected.glsl
@@ -1,12 +1,11 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/types/texture/depth/cube.wgsl.expected.glsl b/test/types/texture/depth/cube.wgsl.expected.glsl
index 4be746b..035eaa1 100644
--- a/test/types/texture/depth/cube.wgsl.expected.glsl
+++ b/test/types/texture/depth/cube.wgsl.expected.glsl
@@ -1,12 +1,11 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/types/texture/depth/cube_array.wgsl.expected.glsl b/test/types/texture/depth/cube_array.wgsl.expected.glsl
index 4be746b..035eaa1 100644
--- a/test/types/texture/depth/cube_array.wgsl.expected.glsl
+++ b/test/types/texture/depth/cube_array.wgsl.expected.glsl
@@ -1,12 +1,11 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/types/texture/multisampled/2d.wgsl.expected.glsl b/test/types/texture/multisampled/2d.wgsl.expected.glsl
index 4be746b..035eaa1 100644
--- a/test/types/texture/multisampled/2d.wgsl.expected.glsl
+++ b/test/types/texture/multisampled/2d.wgsl.expected.glsl
@@ -1,12 +1,11 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/types/texture/sampled/1d.wgsl.expected.glsl b/test/types/texture/sampled/1d.wgsl.expected.glsl
index 4be746b..035eaa1 100644
--- a/test/types/texture/sampled/1d.wgsl.expected.glsl
+++ b/test/types/texture/sampled/1d.wgsl.expected.glsl
@@ -1,12 +1,11 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/types/texture/sampled/2d.wgsl.expected.glsl b/test/types/texture/sampled/2d.wgsl.expected.glsl
index 4be746b..035eaa1 100644
--- a/test/types/texture/sampled/2d.wgsl.expected.glsl
+++ b/test/types/texture/sampled/2d.wgsl.expected.glsl
@@ -1,12 +1,11 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/types/texture/sampled/2d_array.wgsl.expected.glsl b/test/types/texture/sampled/2d_array.wgsl.expected.glsl
index 4be746b..035eaa1 100644
--- a/test/types/texture/sampled/2d_array.wgsl.expected.glsl
+++ b/test/types/texture/sampled/2d_array.wgsl.expected.glsl
@@ -1,12 +1,11 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/types/texture/sampled/3d.wgsl.expected.glsl b/test/types/texture/sampled/3d.wgsl.expected.glsl
index 4be746b..035eaa1 100644
--- a/test/types/texture/sampled/3d.wgsl.expected.glsl
+++ b/test/types/texture/sampled/3d.wgsl.expected.glsl
@@ -1,12 +1,11 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/types/texture/sampled/cube.wgsl.expected.glsl b/test/types/texture/sampled/cube.wgsl.expected.glsl
index 4be746b..035eaa1 100644
--- a/test/types/texture/sampled/cube.wgsl.expected.glsl
+++ b/test/types/texture/sampled/cube.wgsl.expected.glsl
@@ -1,12 +1,11 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/types/texture/sampled/cube_array.wgsl.expected.glsl b/test/types/texture/sampled/cube_array.wgsl.expected.glsl
index 4be746b..035eaa1 100644
--- a/test/types/texture/sampled/cube_array.wgsl.expected.glsl
+++ b/test/types/texture/sampled/cube_array.wgsl.expected.glsl
@@ -1,12 +1,11 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/types/texture/storage/1d.wgsl.expected.glsl b/test/types/texture/storage/1d.wgsl.expected.glsl
index 4be746b..035eaa1 100644
--- a/test/types/texture/storage/1d.wgsl.expected.glsl
+++ b/test/types/texture/storage/1d.wgsl.expected.glsl
@@ -1,12 +1,11 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/types/texture/storage/2d.wgsl.expected.glsl b/test/types/texture/storage/2d.wgsl.expected.glsl
index 4be746b..035eaa1 100644
--- a/test/types/texture/storage/2d.wgsl.expected.glsl
+++ b/test/types/texture/storage/2d.wgsl.expected.glsl
@@ -1,12 +1,11 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/types/texture/storage/2d_array.wgsl.expected.glsl b/test/types/texture/storage/2d_array.wgsl.expected.glsl
index 4be746b..035eaa1 100644
--- a/test/types/texture/storage/2d_array.wgsl.expected.glsl
+++ b/test/types/texture/storage/2d_array.wgsl.expected.glsl
@@ -1,12 +1,11 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/types/texture/storage/3d.wgsl.expected.glsl b/test/types/texture/storage/3d.wgsl.expected.glsl
index 4be746b..035eaa1 100644
--- a/test/types/texture/storage/3d.wgsl.expected.glsl
+++ b/test/types/texture/storage/3d.wgsl.expected.glsl
@@ -1,12 +1,11 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.glsl b/test/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.glsl
index 4121e4d..ec8695d 100644
--- a/test/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.glsl
@@ -25,13 +25,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'sampler1D' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.glsl b/test/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.glsl
index 70cdb2d..32d4882 100644
--- a/test/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.glsl
@@ -25,13 +25,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'sampler1D' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.glsl b/test/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.glsl
index e4b3e9d..e371a23 100644
--- a/test/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.glsl
@@ -25,13 +25,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
diff --git a/test/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.glsl b/test/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.glsl
index 91e212b..7f91879 100644
--- a/test/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.glsl
@@ -26,13 +26,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'sampler1D' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.glsl b/test/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.glsl
index d84e959..3206753 100644
--- a/test/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.glsl
@@ -26,13 +26,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'sampler1D' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.glsl b/test/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.glsl
index f1b5383..d606dc5 100644
--- a/test/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.glsl
@@ -26,13 +26,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'sampler1D' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_3.spvasm.expected.glsl b/test/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_3.spvasm.expected.glsl
index 4dafa7f..c91d503 100644
--- a/test/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_3.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_3.spvasm.expected.glsl
@@ -26,13 +26,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'sampler1D' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/Good_CubeArray_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.glsl b/test/unittest/reader/spirv/Good_CubeArray_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.glsl
index e5c74b4..a68ba3b 100644
--- a/test/unittest/reader/spirv/Good_CubeArray_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/Good_CubeArray_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.glsl
@@ -26,13 +26,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl b/test/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl
index 8f33cd3..d850b05 100644
--- a/test/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl
@@ -28,13 +28,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:23: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:23: '=' :  cannot convert from ' const float' to ' temp mediump int'
diff --git a/test/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.glsl b/test/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.glsl
index 5630b46..f84f06c 100644
--- a/test/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.glsl
@@ -28,13 +28,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:23: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:23: '=' :  cannot convert from ' const float' to ' temp mediump int'
diff --git a/test/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.glsl b/test/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.glsl
index 7dd2858..4889a75 100644
--- a/test/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.glsl
@@ -28,13 +28,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:23: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:23: '=' :  cannot convert from ' const float' to ' temp mediump int'
diff --git a/test/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.glsl b/test/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.glsl
index c13536d..44ddcb5 100644
--- a/test/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.glsl
@@ -28,13 +28,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:23: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:23: '=' :  cannot convert from ' const float' to ' temp mediump int'
diff --git a/test/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.glsl b/test/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.glsl
index c3233ed..5e70fed 100644
--- a/test/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.glsl
@@ -28,13 +28,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.glsl b/test/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.glsl
index 8f33cd3..d850b05 100644
--- a/test/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.glsl
@@ -28,13 +28,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:23: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:23: '=' :  cannot convert from ' const float' to ' temp mediump int'
diff --git a/test/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_6.spvasm.expected.glsl b/test/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_6.spvasm.expected.glsl
index 5630b46..f84f06c 100644
--- a/test/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_6.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_6.spvasm.expected.glsl
@@ -28,13 +28,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:23: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:23: '=' :  cannot convert from ' const float' to ' temp mediump int'
diff --git a/test/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_7.spvasm.expected.glsl b/test/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_7.spvasm.expected.glsl
index c13536d..44ddcb5 100644
--- a/test/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_7.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_7.spvasm.expected.glsl
@@ -28,13 +28,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:23: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:23: '=' :  cannot convert from ' const float' to ' temp mediump int'
diff --git a/test/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_8.spvasm.expected.glsl b/test/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_8.spvasm.expected.glsl
index c3233ed..5e70fed 100644
--- a/test/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_8.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_8.spvasm.expected.glsl
@@ -28,13 +28,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/ImageQueryLevels_UnsignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl b/test/unittest/reader/spirv/ImageQueryLevels_UnsignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl
index e9dcdc1..224db3a 100644
--- a/test/unittest/reader/spirv/ImageQueryLevels_UnsignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/ImageQueryLevels_UnsignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl
@@ -28,13 +28,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:23: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:23: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/ImageQuerySamples_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl b/test/unittest/reader/spirv/ImageQuerySamples_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl
index f3fde91..ed11575 100644
--- a/test/unittest/reader/spirv/ImageQuerySamples_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/ImageQuerySamples_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl
@@ -28,13 +28,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:23: 'textureSamples' : no matching overloaded function found 
 ERROR: 0:23: '=' :  cannot convert from ' const float' to ' temp mediump int'
diff --git a/test/unittest/reader/spirv/ImageQuerySamples_UnsignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl b/test/unittest/reader/spirv/ImageQuerySamples_UnsignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl
index 4ff11e5..a76b079 100644
--- a/test/unittest/reader/spirv/ImageQuerySamples_UnsignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/ImageQuerySamples_UnsignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl
@@ -28,13 +28,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:23: 'textureSamples' : no matching overloaded function found 
 ERROR: 0:23: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl b/test/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl
index 7932851..9a35a8e 100644
--- a/test/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl
@@ -28,13 +28,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:23: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:23: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.glsl b/test/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.glsl
index 3e63cc0..4ad3ddc 100644
--- a/test/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.glsl
@@ -28,13 +28,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.glsl b/test/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.glsl
index 7932851..9a35a8e 100644
--- a/test/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.glsl
@@ -28,13 +28,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:23: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:23: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.glsl b/test/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.glsl
index 3e63cc0..4ad3ddc 100644
--- a/test/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.glsl
@@ -28,13 +28,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/ImageQuerySize_Arrayed_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl b/test/unittest/reader/spirv/ImageQuerySize_Arrayed_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl
index fe1fc27..649714b 100644
--- a/test/unittest/reader/spirv/ImageQuerySize_Arrayed_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/ImageQuerySize_Arrayed_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl
@@ -29,13 +29,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:23: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:23: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl b/test/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl
index 050e160..16fe00a 100644
--- a/test/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl
@@ -28,13 +28,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:23: '=' :  cannot convert from ' global highp 4-component vector of float' to ' temp mediump float'
 ERROR: 0:23: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.glsl b/test/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.glsl
index 05602d7..83f1c0e 100644
--- a/test/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.glsl
@@ -29,13 +29,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:24: '=' :  cannot convert from ' global highp 4-component vector of float' to ' temp mediump float'
 ERROR: 0:24: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.glsl b/test/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.glsl
index ed9e982..3e10a01 100644
--- a/test/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.glsl
@@ -28,13 +28,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:23: 'textureOffset' : no matching overloaded function found 
 ERROR: 0:23: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.glsl b/test/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.glsl
index 04b51c2..0f52792 100644
--- a/test/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.glsl
@@ -29,13 +29,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:24: 'textureOffset' : no matching overloaded function found 
 ERROR: 0:24: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.glsl b/test/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.glsl
index ccdcc0d..3e14f13 100644
--- a/test/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.glsl
@@ -28,13 +28,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:23: '=' :  cannot convert from ' global highp 4-component vector of float' to ' temp mediump float'
 ERROR: 0:23: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.glsl b/test/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.glsl
index 39ad56a..2023f1f 100644
--- a/test/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.glsl
@@ -29,13 +29,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'samplerCubeArray' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl b/test/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl
index 050e160..16fe00a 100644
--- a/test/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl
@@ -28,13 +28,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:23: '=' :  cannot convert from ' global highp 4-component vector of float' to ' temp mediump float'
 ERROR: 0:23: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.glsl b/test/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.glsl
index 05602d7..83f1c0e 100644
--- a/test/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.glsl
@@ -29,13 +29,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:24: '=' :  cannot convert from ' global highp 4-component vector of float' to ' temp mediump float'
 ERROR: 0:24: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.glsl b/test/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.glsl
index ed9e982..3e10a01 100644
--- a/test/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.glsl
@@ -28,13 +28,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:23: 'textureOffset' : no matching overloaded function found 
 ERROR: 0:23: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.glsl b/test/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.glsl
index 04b51c2..0f52792 100644
--- a/test/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.glsl
@@ -29,13 +29,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:24: 'textureOffset' : no matching overloaded function found 
 ERROR: 0:24: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/ImageSampleExplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.glsl b/test/unittest/reader/spirv/ImageSampleExplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.glsl
index b41b32e..ba0a97a 100644
--- a/test/unittest/reader/spirv/ImageSampleExplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/ImageSampleExplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.glsl
@@ -29,13 +29,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:24: 'textureLod' : no matching overloaded function found 
 ERROR: 0:24: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/ImageSampleImplicitLod_BothDrefAndNonDref_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl b/test/unittest/reader/spirv/ImageSampleImplicitLod_BothDrefAndNonDref_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl
index cb7959b..9a443a9 100644
--- a/test/unittest/reader/spirv/ImageSampleImplicitLod_BothDrefAndNonDref_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/ImageSampleImplicitLod_BothDrefAndNonDref_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl
@@ -32,13 +32,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:27: '=' :  cannot convert from ' global highp 4-component vector of float' to ' temp mediump float'
 ERROR: 0:27: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/ImageSampleProjDrefExplicitLod_CheckForLod0_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.glsl b/test/unittest/reader/spirv/ImageSampleProjDrefExplicitLod_CheckForLod0_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.glsl
index c2929f1..36fdc50 100644
--- a/test/unittest/reader/spirv/ImageSampleProjDrefExplicitLod_CheckForLod0_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/ImageSampleProjDrefExplicitLod_CheckForLod0_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.glsl
@@ -26,13 +26,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:20: '=' :  cannot convert from ' global highp 4-component vector of float' to ' temp mediump float'
 ERROR: 0:20: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/ImageSampleProjDrefExplicitLod_CheckForLod0_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.glsl b/test/unittest/reader/spirv/ImageSampleProjDrefExplicitLod_CheckForLod0_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.glsl
index c2929f1..36fdc50 100644
--- a/test/unittest/reader/spirv/ImageSampleProjDrefExplicitLod_CheckForLod0_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/ImageSampleProjDrefExplicitLod_CheckForLod0_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.glsl
@@ -26,13 +26,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:20: '=' :  cannot convert from ' global highp 4-component vector of float' to ' temp mediump float'
 ERROR: 0:20: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/ImageSampleProjDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl b/test/unittest/reader/spirv/ImageSampleProjDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl
index 022fec9..3d0551f 100644
--- a/test/unittest/reader/spirv/ImageSampleProjDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/ImageSampleProjDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl
@@ -29,13 +29,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:24: '=' :  cannot convert from ' global highp 4-component vector of float' to ' temp mediump float'
 ERROR: 0:24: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/ImageSampleProjDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.glsl b/test/unittest/reader/spirv/ImageSampleProjDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.glsl
index bbf595c..be82c2c 100644
--- a/test/unittest/reader/spirv/ImageSampleProjDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/ImageSampleProjDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.glsl
@@ -29,13 +29,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:24: 'textureOffset' : no matching overloaded function found 
 ERROR: 0:24: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl b/test/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl
index b939ed5..73b24ad 100644
--- a/test/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.glsl
@@ -29,13 +29,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'sampler1D' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_4.spvasm.expected.glsl b/test/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_4.spvasm.expected.glsl
index 7b17048..cff10d5 100644
--- a/test/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_4.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_4.spvasm.expected.glsl
@@ -24,13 +24,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_5.spvasm.expected.glsl b/test/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_5.spvasm.expected.glsl
index 4521389..4412b95 100644
--- a/test/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_5.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_5.spvasm.expected.glsl
@@ -24,13 +24,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_6.spvasm.expected.glsl b/test/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_6.spvasm.expected.glsl
index 7af7e02..0f1f46b 100644
--- a/test/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_6.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_6.spvasm.expected.glsl
@@ -24,13 +24,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/Multisampled_Only2DNonArrayedIsValid_SpvParserHandleTest_ImageDeclTest_DeclareAndUseHandle_2.spvasm.expected.glsl b/test/unittest/reader/spirv/Multisampled_Only2DNonArrayedIsValid_SpvParserHandleTest_ImageDeclTest_DeclareAndUseHandle_2.spvasm.expected.glsl
index ef37dc3..bd6a5b0 100644
--- a/test/unittest/reader/spirv/Multisampled_Only2DNonArrayedIsValid_SpvParserHandleTest_ImageDeclTest_DeclareAndUseHandle_2.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/Multisampled_Only2DNonArrayedIsValid_SpvParserHandleTest_ImageDeclTest_DeclareAndUseHandle_2.spvasm.expected.glsl
@@ -25,13 +25,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:19: 'textureSamples' : no matching overloaded function found 
 ERROR: 0:19: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/PreserveFloatCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.glsl b/test/unittest/reader/spirv/PreserveFloatCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.glsl
index c7d6336..9a9cc5c 100644
--- a/test/unittest/reader/spirv/PreserveFloatCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/PreserveFloatCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.glsl
@@ -26,13 +26,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:20: '=' :  cannot convert from ' global highp 4-component vector of float' to ' temp mediump float'
 ERROR: 0:20: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.glsl b/test/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.glsl
index 91e212b..7f91879 100644
--- a/test/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.glsl
@@ -26,13 +26,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'sampler1D' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_4.spvasm.expected.glsl b/test/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_4.spvasm.expected.glsl
index c44d565..35020aa 100644
--- a/test/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_4.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_4.spvasm.expected.glsl
@@ -26,13 +26,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:20: '=' :  cannot convert from ' global highp 4-component vector of float' to ' temp mediump float'
 ERROR: 0:20: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.glsl b/test/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.glsl
index 1c639c9..7f6f121 100644
--- a/test/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.glsl
@@ -25,13 +25,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'sampler1D' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.glsl b/test/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.glsl
index f8adcc2..7d58180 100644
--- a/test/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.glsl
@@ -25,13 +25,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'sampler1D' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.glsl b/test/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.glsl
index 6321d0e..a4a4842 100644
--- a/test/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.glsl
@@ -25,13 +25,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image1D' : Reserved word. 
 WARNING: 0:4: 'layout' : useless application of layout qualifier 
diff --git a/test/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_0.spvasm.expected.glsl b/test/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_0.spvasm.expected.glsl
index 25158b4..9f13868 100644
--- a/test/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_0.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_0.spvasm.expected.glsl
@@ -11,13 +11,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'sampler1D' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_1.spvasm.expected.glsl b/test/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_1.spvasm.expected.glsl
index d49cbd4..0046281 100644
--- a/test/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_1.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_1.spvasm.expected.glsl
@@ -11,13 +11,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'image load-store format' : not supported with this profile: es
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_2.spvasm.expected.glsl b/test/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_2.spvasm.expected.glsl
index e6d0619..72709a3 100644
--- a/test/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_2.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_2.spvasm.expected.glsl
@@ -11,13 +11,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:4: 'sampler1D' : Reserved word. 
 ERROR: 0:4: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_5.spvasm.expected.glsl b/test/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_5.spvasm.expected.glsl
index a995415..b35bfaa 100644
--- a/test/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_5.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_5.spvasm.expected.glsl
@@ -11,13 +11,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureQueryLevels' : no matching overloaded function found 
 ERROR: 0:6: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_6.spvasm.expected.glsl b/test/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_6.spvasm.expected.glsl
index c076536..4ed812d 100644
--- a/test/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_6.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_6.spvasm.expected.glsl
@@ -11,13 +11,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'textureSamples' : no matching overloaded function found 
 ERROR: 0:6: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_4.spvasm.expected.glsl b/test/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_4.spvasm.expected.glsl
index b8cfc8b..9c6e1b0 100644
--- a/test/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_4.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_4.spvasm.expected.glsl
@@ -12,13 +12,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: '=' :  cannot convert from ' global highp 4-component vector of float' to ' temp mediump float'
 ERROR: 0:7: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_8.spvasm.expected.glsl b/test/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_8.spvasm.expected.glsl
index 69330dc..f5952b4 100644
--- a/test/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_8.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_8.spvasm.expected.glsl
@@ -12,13 +12,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: '=' :  cannot convert from ' global highp 4-component vector of float' to ' temp mediump float'
 ERROR: 0:7: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_9.spvasm.expected.glsl b/test/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_9.spvasm.expected.glsl
index 69330dc..f5952b4 100644
--- a/test/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_9.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_9.spvasm.expected.glsl
@@ -12,13 +12,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:7: '=' :  cannot convert from ' global highp 4-component vector of float' to ' temp mediump float'
 ERROR: 0:7: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataPacking_Valid_0.spvasm.expected.glsl b/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataPacking_Valid_0.spvasm.expected.glsl
index ab58934..2367041 100644
--- a/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataPacking_Valid_0.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataPacking_Valid_0.spvasm.expected.glsl
@@ -36,16 +36,15 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'int4' : undeclared identifier 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataPacking_Valid_1.spvasm.expected.glsl b/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataPacking_Valid_1.spvasm.expected.glsl
index 65c3ce5..e54ecf4 100644
--- a/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataPacking_Valid_1.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataPacking_Valid_1.spvasm.expected.glsl
@@ -36,16 +36,15 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'uint4' : undeclared identifier 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataPacking_Valid_2.spvasm.expected.glsl b/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataPacking_Valid_2.spvasm.expected.glsl
index 25b1438..db08670 100644
--- a/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataPacking_Valid_2.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataPacking_Valid_2.spvasm.expected.glsl
@@ -36,16 +36,15 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'int2' : undeclared identifier 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataPacking_Valid_3.spvasm.expected.glsl b/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataPacking_Valid_3.spvasm.expected.glsl
index e8c6e78..990e9ed 100644
--- a/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataPacking_Valid_3.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataPacking_Valid_3.spvasm.expected.glsl
@@ -36,16 +36,15 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'uint2' : undeclared identifier 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataPacking_Valid_4.spvasm.expected.glsl b/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataPacking_Valid_4.spvasm.expected.glsl
index b616d81..9f34b41 100644
--- a/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataPacking_Valid_4.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataPacking_Valid_4.spvasm.expected.glsl
@@ -36,16 +36,15 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'uint2' : undeclared identifier 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataUnpacking_Valid_0.spvasm.expected.glsl b/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataUnpacking_Valid_0.spvasm.expected.glsl
index 7f7f710..fd349a8 100644
--- a/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataUnpacking_Valid_0.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataUnpacking_Valid_0.spvasm.expected.glsl
@@ -37,16 +37,15 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'int4' : undeclared identifier 
 ERROR: 0:6: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataUnpacking_Valid_1.spvasm.expected.glsl b/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataUnpacking_Valid_1.spvasm.expected.glsl
index ace2c18..ec19124 100644
--- a/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataUnpacking_Valid_1.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataUnpacking_Valid_1.spvasm.expected.glsl
@@ -37,16 +37,15 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'uint4' : undeclared identifier 
 ERROR: 0:6: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataUnpacking_Valid_2.spvasm.expected.glsl b/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataUnpacking_Valid_2.spvasm.expected.glsl
index 37d9b1a..cfa6431 100644
--- a/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataUnpacking_Valid_2.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataUnpacking_Valid_2.spvasm.expected.glsl
@@ -37,16 +37,15 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'int2' : undeclared identifier 
 ERROR: 0:6: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataUnpacking_Valid_3.spvasm.expected.glsl b/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataUnpacking_Valid_3.spvasm.expected.glsl
index 42eaecc..7b64532 100644
--- a/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataUnpacking_Valid_3.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataUnpacking_Valid_3.spvasm.expected.glsl
@@ -37,16 +37,15 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'uint2' : undeclared identifier 
 ERROR: 0:6: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataUnpacking_Valid_4.spvasm.expected.glsl b/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataUnpacking_Valid_4.spvasm.expected.glsl
index e9c3f07..549c390 100644
--- a/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataUnpacking_Valid_4.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataUnpacking_Valid_4.spvasm.expected.glsl
@@ -36,16 +36,15 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp highp uint' and a right operand of type ' const int' (or there is no acceptable conversion)
 ERROR: 0:6: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloatingFloating_Scalar_2.spvasm.expected.glsl b/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloatingFloating_Scalar_2.spvasm.expected.glsl
index f3abfdf..fd9f71d 100644
--- a/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloatingFloating_Scalar_2.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloatingFloating_Scalar_2.spvasm.expected.glsl
@@ -30,16 +30,15 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:27: 'mad' : no matching overloaded function found 
 ERROR: 0:27: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloatingFloating_Vector_2.spvasm.expected.glsl b/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloatingFloating_Vector_2.spvasm.expected.glsl
index c8d0e8c..b0c6584 100644
--- a/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloatingFloating_Vector_2.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloatingFloating_Vector_2.spvasm.expected.glsl
@@ -30,16 +30,15 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:27: 'mad' : no matching overloaded function found 
 ERROR: 0:27: '=' :  cannot convert from ' const float' to ' temp mediump 2-component vector of float'
diff --git a/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_11.spvasm.expected.glsl b/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_11.spvasm.expected.glsl
index e77fb64..df643c6 100644
--- a/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_11.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_11.spvasm.expected.glsl
@@ -30,16 +30,15 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:27: 'frac' : no matching overloaded function found 
 ERROR: 0:27: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_12.spvasm.expected.glsl b/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_12.spvasm.expected.glsl
index 924627a..9678ca6 100644
--- a/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_12.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_12.spvasm.expected.glsl
@@ -30,16 +30,15 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:27: 'rsqrt' : no matching overloaded function found 
 ERROR: 0:27: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_11.spvasm.expected.glsl b/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_11.spvasm.expected.glsl
index f6462e6..65eaab6 100644
--- a/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_11.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_11.spvasm.expected.glsl
@@ -30,16 +30,15 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:27: 'frac' : no matching overloaded function found 
 ERROR: 0:27: '=' :  cannot convert from ' const float' to ' temp mediump 2-component vector of float'
diff --git a/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_12.spvasm.expected.glsl b/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_12.spvasm.expected.glsl
index 441335c..d88893e 100644
--- a/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_12.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_12.spvasm.expected.glsl
@@ -30,16 +30,15 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:27: 'rsqrt' : no matching overloaded function found 
 ERROR: 0:27: '=' :  cannot convert from ' const float' to ' temp mediump 2-component vector of float'
diff --git a/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_0.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_0.spvasm.expected.glsl
index 4c9e1f9..019f563 100644
--- a/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_0.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_0.spvasm.expected.glsl
@@ -10,13 +10,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'ddx' : no matching overloaded function found 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_1.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_1.spvasm.expected.glsl
index 4a7faf0..2da4a96 100644
--- a/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_1.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_1.spvasm.expected.glsl
@@ -11,13 +11,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'ddx' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp mediump 2-component vector of float'
diff --git a/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_10.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_10.spvasm.expected.glsl
index 2256d98..95775f1 100644
--- a/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_10.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_10.spvasm.expected.glsl
@@ -11,13 +11,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'ddx_fine' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp mediump 2-component vector of float'
diff --git a/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_11.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_11.spvasm.expected.glsl
index c0e2e14..e423873 100644
--- a/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_11.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_11.spvasm.expected.glsl
@@ -11,13 +11,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'ddx_fine' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp mediump 3-component vector of float'
diff --git a/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_12.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_12.spvasm.expected.glsl
index dc514d8..31226b6 100644
--- a/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_12.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_12.spvasm.expected.glsl
@@ -10,13 +10,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'ddy_fine' : no matching overloaded function found 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_13.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_13.spvasm.expected.glsl
index fda6138..12ea7a6 100644
--- a/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_13.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_13.spvasm.expected.glsl
@@ -11,13 +11,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'ddy_fine' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp mediump 2-component vector of float'
diff --git a/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_14.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_14.spvasm.expected.glsl
index 635aeac..e4cf151 100644
--- a/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_14.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_14.spvasm.expected.glsl
@@ -11,13 +11,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'ddy_fine' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp mediump 3-component vector of float'
diff --git a/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_18.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_18.spvasm.expected.glsl
index 7337c86..2739ce4 100644
--- a/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_18.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_18.spvasm.expected.glsl
@@ -10,13 +10,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'ddx_coarse' : no matching overloaded function found 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_19.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_19.spvasm.expected.glsl
index dac0f4c..a3fe73c 100644
--- a/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_19.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_19.spvasm.expected.glsl
@@ -11,13 +11,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'ddx_coarse' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp mediump 2-component vector of float'
diff --git a/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_2.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_2.spvasm.expected.glsl
index f05af78..3d2217b 100644
--- a/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_2.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_2.spvasm.expected.glsl
@@ -11,13 +11,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'ddx' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp mediump 3-component vector of float'
diff --git a/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_20.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_20.spvasm.expected.glsl
index 6542079..a45a0a5 100644
--- a/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_20.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_20.spvasm.expected.glsl
@@ -11,13 +11,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'ddx_coarse' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp mediump 3-component vector of float'
diff --git a/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_21.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_21.spvasm.expected.glsl
index ff0447f..cf08a02 100644
--- a/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_21.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_21.spvasm.expected.glsl
@@ -10,13 +10,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'ddy_coarse' : no matching overloaded function found 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_22.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_22.spvasm.expected.glsl
index caa1530..47fd024 100644
--- a/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_22.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_22.spvasm.expected.glsl
@@ -11,13 +11,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'ddy_coarse' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp mediump 2-component vector of float'
diff --git a/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_23.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_23.spvasm.expected.glsl
index 144461c..7e97ae4 100644
--- a/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_23.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_23.spvasm.expected.glsl
@@ -11,13 +11,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'ddy_coarse' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp mediump 3-component vector of float'
diff --git a/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_3.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_3.spvasm.expected.glsl
index 545205b..bc7f163 100644
--- a/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_3.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_3.spvasm.expected.glsl
@@ -10,13 +10,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'ddy' : no matching overloaded function found 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_4.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_4.spvasm.expected.glsl
index 3ba58ce..ec5fe60 100644
--- a/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_4.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_4.spvasm.expected.glsl
@@ -11,13 +11,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'ddy' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp mediump 2-component vector of float'
diff --git a/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_5.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_5.spvasm.expected.glsl
index 78db9a9..48836c6 100644
--- a/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_5.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_5.spvasm.expected.glsl
@@ -11,13 +11,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'ddy' : no matching overloaded function found 
 ERROR: 0:6: '=' :  cannot convert from ' const float' to ' temp mediump 3-component vector of float'
diff --git a/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_9.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_9.spvasm.expected.glsl
index 6e3763e..c6c4cc9 100644
--- a/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_9.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_9.spvasm.expected.glsl
@@ -10,13 +10,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'ddx_fine' : no matching overloaded function found 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/SpvFUnordTest_FUnordEqual_Vector.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvFUnordTest_FUnordEqual_Vector.spvasm.expected.glsl
index 052c8ca..795babe 100644
--- a/test/unittest/reader/spirv/SpvFUnordTest_FUnordEqual_Vector.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvFUnordTest_FUnordEqual_Vector.spvasm.expected.glsl
@@ -10,13 +10,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '!' :  wrong operand type no operation '!' exists that takes an operand of type  const 2-component vector of bool (or there is no acceptable conversion)
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/SpvFUnordTest_FUnordGreaterThanEqual_Vector.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvFUnordTest_FUnordGreaterThanEqual_Vector.spvasm.expected.glsl
index a98df47..c56133f 100644
--- a/test/unittest/reader/spirv/SpvFUnordTest_FUnordGreaterThanEqual_Vector.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvFUnordTest_FUnordGreaterThanEqual_Vector.spvasm.expected.glsl
@@ -10,13 +10,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '!' :  wrong operand type no operation '!' exists that takes an operand of type  const 2-component vector of bool (or there is no acceptable conversion)
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/SpvFUnordTest_FUnordGreaterThan_Vector.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvFUnordTest_FUnordGreaterThan_Vector.spvasm.expected.glsl
index 99e7ee9..f78d5be 100644
--- a/test/unittest/reader/spirv/SpvFUnordTest_FUnordGreaterThan_Vector.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvFUnordTest_FUnordGreaterThan_Vector.spvasm.expected.glsl
@@ -10,13 +10,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '!' :  wrong operand type no operation '!' exists that takes an operand of type  const 2-component vector of bool (or there is no acceptable conversion)
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/SpvFUnordTest_FUnordLessThanEqual_Vector.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvFUnordTest_FUnordLessThanEqual_Vector.spvasm.expected.glsl
index eee2525..cf5d832 100644
--- a/test/unittest/reader/spirv/SpvFUnordTest_FUnordLessThanEqual_Vector.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvFUnordTest_FUnordLessThanEqual_Vector.spvasm.expected.glsl
@@ -10,13 +10,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '!' :  wrong operand type no operation '!' exists that takes an operand of type  const 2-component vector of bool (or there is no acceptable conversion)
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/SpvFUnordTest_FUnordLessThan_Vector.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvFUnordTest_FUnordLessThan_Vector.spvasm.expected.glsl
index b64a1ec..8674bdd 100644
--- a/test/unittest/reader/spirv/SpvFUnordTest_FUnordLessThan_Vector.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvFUnordTest_FUnordLessThan_Vector.spvasm.expected.glsl
@@ -10,13 +10,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '!' :  wrong operand type no operation '!' exists that takes an operand of type  const 2-component vector of bool (or there is no acceptable conversion)
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/SpvFUnordTest_FUnordNotEqual_Vector.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvFUnordTest_FUnordNotEqual_Vector.spvasm.expected.glsl
index 13dcb9a..b435170 100644
--- a/test/unittest/reader/spirv/SpvFUnordTest_FUnordNotEqual_Vector.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvFUnordTest_FUnordNotEqual_Vector.spvasm.expected.glsl
@@ -10,13 +10,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '!' :  wrong operand type no operation '!' exists that takes an operand of type  const 2-component vector of bool (or there is no acceptable conversion)
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/SpvLogicalTest_Select_VecBoolCond_VectorParams.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvLogicalTest_Select_VecBoolCond_VectorParams.spvasm.expected.glsl
index 4bcaaf7..19e5f94 100644
--- a/test/unittest/reader/spirv/SpvLogicalTest_Select_VecBoolCond_VectorParams.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvLogicalTest_Select_VecBoolCond_VectorParams.spvasm.expected.glsl
@@ -10,13 +10,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : boolean expression expected 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_In_Signed.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_In_Signed.spvasm.expected.glsl
index 7e97341..2b99291 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_In_Signed.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_In_Signed.spvasm.expected.glsl
@@ -8,30 +8,18 @@
   return;
 }
 
-struct tint_symbol_2 {
-  uint x_1_param;
-};
-
-void tint_symbol_inner(uint x_1_param) {
+void tint_symbol(uint x_1_param) {
   x_1[0] = int(x_1_param);
   main_1();
 }
 
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.x_1_param);
+void main() {
+  tint_symbol(uint(gl_SampleMask[0]));
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.x_1_param = uint(gl_SampleMask);
-  tint_symbol(inputs);
-}
-
 Error parsing GLSL shader:
-ERROR: 0:26: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables
-ERROR: 0:26: '' : compilation terminated 
+ERROR: 0:15: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables
+ERROR: 0:15: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_In_Unsigned.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_In_Unsigned.spvasm.expected.glsl
index 3e36874..44302f4 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_In_Unsigned.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_In_Unsigned.spvasm.expected.glsl
@@ -8,30 +8,18 @@
   return;
 }
 
-struct tint_symbol_2 {
-  uint x_1_param;
-};
-
-void tint_symbol_inner(uint x_1_param) {
+void tint_symbol(uint x_1_param) {
   x_1[0] = x_1_param;
   main_1();
 }
 
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.x_1_param);
+void main() {
+  tint_symbol(uint(gl_SampleMask[0]));
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.x_1_param = uint(gl_SampleMask);
-  tint_symbol(inputs);
-}
-
 Error parsing GLSL shader:
-ERROR: 0:26: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables
-ERROR: 0:26: '' : compilation terminated 
+ERROR: 0:15: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables
+ERROR: 0:15: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_Out_Signed_Initializer.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_Out_Signed_Initializer.spvasm.expected.glsl
index 8d3186a..b6cf43f 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_Out_Signed_Initializer.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_Out_Signed_Initializer.spvasm.expected.glsl
@@ -12,33 +12,20 @@
   uint x_1_1;
 };
 
-struct tint_symbol_1 {
-  uint x_1_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(uint(x_1[0]));
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(uint(x_1[0]));
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(0u);
-  wrapper_result.x_1_1 = inner_result.x_1_1;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  gl_SampleMask = outputs.x_1_1;
+  main_out inner_result = tint_symbol();
+  gl_SampleMask[0] = inner_result.x_1_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:34: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables
-ERROR: 0:34: '' : compilation terminated 
+ERROR: 0:21: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables
+ERROR: 0:21: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_Out_Unsigned_Initializer.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_Out_Unsigned_Initializer.spvasm.expected.glsl
index 4d43631..48269aa 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_Out_Unsigned_Initializer.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_Out_Unsigned_Initializer.spvasm.expected.glsl
@@ -12,33 +12,20 @@
   uint x_1_1;
 };
 
-struct tint_symbol_1 {
-  uint x_1_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_1[0]);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_1[0]);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(0u);
-  wrapper_result.x_1_1 = inner_result.x_1_1;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  gl_SampleMask = outputs.x_1_1;
+  main_out inner_result = tint_symbol();
+  gl_SampleMask[0] = inner_result.x_1_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:34: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables
-ERROR: 0:34: '' : compilation terminated 
+ERROR: 0:21: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables
+ERROR: 0:21: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Interpolation_Flat_Vertex_In.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Interpolation_Flat_Vertex_In.spvasm.expected.glsl
new file mode 100644
index 0000000..db21d74
--- /dev/null
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Interpolation_Flat_Vertex_In.spvasm.expected.glsl
@@ -0,0 +1,52 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+layout(location = 1) flat in uint x_1_param_1;
+layout(location = 2) flat in uvec2 x_2_param_1;
+layout(location = 3) flat in int x_3_param_1;
+layout(location = 4) flat in ivec2 x_4_param_1;
+layout(location = 5) flat in float x_5_param_1;
+layout(location = 6) flat in vec2 x_6_param_1;
+uint x_1 = 0u;
+uvec2 x_2 = uvec2(0u, 0u);
+int x_3 = 0;
+ivec2 x_4 = ivec2(0, 0);
+float x_5 = 0.0f;
+vec2 x_6 = vec2(0.0f, 0.0f);
+vec4 x_8 = vec4(0.0f, 0.0f, 0.0f, 0.0f);
+void main_1() {
+  return;
+}
+
+struct main_out {
+  vec4 x_8_1;
+};
+
+main_out tint_symbol(uint x_1_param, uvec2 x_2_param, int x_3_param, ivec2 x_4_param, float x_5_param, vec2 x_6_param) {
+  x_1 = x_1_param;
+  x_2 = x_2_param;
+  x_3 = x_3_param;
+  x_4 = x_4_param;
+  x_5 = x_5_param;
+  x_6 = x_6_param;
+  main_1();
+  main_out tint_symbol_1 = main_out(x_8);
+  return tint_symbol_1;
+}
+
+void main() {
+  main_out inner_result = tint_symbol(x_1_param_1, x_2_param_1, x_3_param_1, x_4_param_1, x_5_param_1, x_6_param_1);
+  gl_Position = inner_result.x_8_1;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:4: '' : vertex input cannot be further qualified 
+ERROR: 0:4: '' : compilation terminated 
+ERROR: 2 compilation errors.  No code generated.
+
+
+
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_AccessChain.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_AccessChain.spvasm.expected.glsl
index 5286cdb..b0827e8 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_AccessChain.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_AccessChain.spvasm.expected.glsl
@@ -9,30 +9,18 @@
   return;
 }
 
-struct tint_symbol_2 {
-  uint x_1_param;
-};
-
-void tint_symbol_inner(uint x_1_param) {
+void tint_symbol(uint x_1_param) {
   x_1 = int(x_1_param);
   main_1();
 }
 
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.x_1_param);
+void main() {
+  tint_symbol(uint(gl_SampleID));
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.x_1_param = uint(gl_SampleID);
-  tint_symbol(inputs);
-}
-
 Error parsing GLSL shader:
-ERROR: 0:27: 'gl_SampleID' : required extension not requested: GL_OES_sample_variables
-ERROR: 0:27: '' : compilation terminated 
+ERROR: 0:16: 'gl_SampleID' : required extension not requested: GL_OES_sample_variables
+ERROR: 0:16: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_CopyObject.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_CopyObject.spvasm.expected.glsl
index 5286cdb..b0827e8 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_CopyObject.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_CopyObject.spvasm.expected.glsl
@@ -9,30 +9,18 @@
   return;
 }
 
-struct tint_symbol_2 {
-  uint x_1_param;
-};
-
-void tint_symbol_inner(uint x_1_param) {
+void tint_symbol(uint x_1_param) {
   x_1 = int(x_1_param);
   main_1();
 }
 
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.x_1_param);
+void main() {
+  tint_symbol(uint(gl_SampleID));
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.x_1_param = uint(gl_SampleID);
-  tint_symbol(inputs);
-}
-
 Error parsing GLSL shader:
-ERROR: 0:27: 'gl_SampleID' : required extension not requested: GL_OES_sample_variables
-ERROR: 0:27: '' : compilation terminated 
+ERROR: 0:16: 'gl_SampleID' : required extension not requested: GL_OES_sample_variables
+ERROR: 0:16: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_Direct.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_Direct.spvasm.expected.glsl
index 5286cdb..b0827e8 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_Direct.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_Direct.spvasm.expected.glsl
@@ -9,30 +9,18 @@
   return;
 }
 
-struct tint_symbol_2 {
-  uint x_1_param;
-};
-
-void tint_symbol_inner(uint x_1_param) {
+void tint_symbol(uint x_1_param) {
   x_1 = int(x_1_param);
   main_1();
 }
 
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.x_1_param);
+void main() {
+  tint_symbol(uint(gl_SampleID));
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.x_1_param = uint(gl_SampleID);
-  tint_symbol(inputs);
-}
-
 Error parsing GLSL shader:
-ERROR: 0:27: 'gl_SampleID' : required extension not requested: GL_OES_sample_variables
-ERROR: 0:27: '' : compilation terminated 
+ERROR: 0:16: 'gl_SampleID' : required extension not requested: GL_OES_sample_variables
+ERROR: 0:16: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_AccessChain.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_AccessChain.spvasm.expected.glsl
index af4104a..9a1398c 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_AccessChain.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_AccessChain.spvasm.expected.glsl
@@ -9,30 +9,18 @@
   return;
 }
 
-struct tint_symbol_2 {
-  uint x_1_param;
-};
-
-void tint_symbol_inner(uint x_1_param) {
+void tint_symbol(uint x_1_param) {
   x_1 = x_1_param;
   main_1();
 }
 
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.x_1_param);
+void main() {
+  tint_symbol(uint(gl_SampleID));
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.x_1_param = uint(gl_SampleID);
-  tint_symbol(inputs);
-}
-
 Error parsing GLSL shader:
-ERROR: 0:27: 'gl_SampleID' : required extension not requested: GL_OES_sample_variables
-ERROR: 0:27: '' : compilation terminated 
+ERROR: 0:16: 'gl_SampleID' : required extension not requested: GL_OES_sample_variables
+ERROR: 0:16: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_CopyObject.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_CopyObject.spvasm.expected.glsl
index af4104a..9a1398c 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_CopyObject.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_CopyObject.spvasm.expected.glsl
@@ -9,30 +9,18 @@
   return;
 }
 
-struct tint_symbol_2 {
-  uint x_1_param;
-};
-
-void tint_symbol_inner(uint x_1_param) {
+void tint_symbol(uint x_1_param) {
   x_1 = x_1_param;
   main_1();
 }
 
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.x_1_param);
+void main() {
+  tint_symbol(uint(gl_SampleID));
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.x_1_param = uint(gl_SampleID);
-  tint_symbol(inputs);
-}
-
 Error parsing GLSL shader:
-ERROR: 0:27: 'gl_SampleID' : required extension not requested: GL_OES_sample_variables
-ERROR: 0:27: '' : compilation terminated 
+ERROR: 0:16: 'gl_SampleID' : required extension not requested: GL_OES_sample_variables
+ERROR: 0:16: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_Direct.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_Direct.spvasm.expected.glsl
index af4104a..9a1398c 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_Direct.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_Direct.spvasm.expected.glsl
@@ -9,30 +9,18 @@
   return;
 }
 
-struct tint_symbol_2 {
-  uint x_1_param;
-};
-
-void tint_symbol_inner(uint x_1_param) {
+void tint_symbol(uint x_1_param) {
   x_1 = x_1_param;
   main_1();
 }
 
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.x_1_param);
+void main() {
+  tint_symbol(uint(gl_SampleID));
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.x_1_param = uint(gl_SampleID);
-  tint_symbol(inputs);
-}
-
 Error parsing GLSL shader:
-ERROR: 0:27: 'gl_SampleID' : required extension not requested: GL_OES_sample_variables
-ERROR: 0:27: '' : compilation terminated 
+ERROR: 0:16: 'gl_SampleID' : required extension not requested: GL_OES_sample_variables
+ERROR: 0:16: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_AccessChain.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_AccessChain.spvasm.expected.glsl
index 0e69117..5377a90 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_AccessChain.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_AccessChain.spvasm.expected.glsl
@@ -9,30 +9,18 @@
   return;
 }
 
-struct tint_symbol_2 {
-  uint x_1_param;
-};
-
-void tint_symbol_inner(uint x_1_param) {
+void tint_symbol(uint x_1_param) {
   x_1[0] = int(x_1_param);
   main_1();
 }
 
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.x_1_param);
+void main() {
+  tint_symbol(uint(gl_SampleMask[0]));
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.x_1_param = uint(gl_SampleMask);
-  tint_symbol(inputs);
-}
-
 Error parsing GLSL shader:
-ERROR: 0:27: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables
-ERROR: 0:27: '' : compilation terminated 
+ERROR: 0:16: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables
+ERROR: 0:16: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_CopyObject.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_CopyObject.spvasm.expected.glsl
index 0e69117..5377a90 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_CopyObject.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_CopyObject.spvasm.expected.glsl
@@ -9,30 +9,18 @@
   return;
 }
 
-struct tint_symbol_2 {
-  uint x_1_param;
-};
-
-void tint_symbol_inner(uint x_1_param) {
+void tint_symbol(uint x_1_param) {
   x_1[0] = int(x_1_param);
   main_1();
 }
 
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.x_1_param);
+void main() {
+  tint_symbol(uint(gl_SampleMask[0]));
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.x_1_param = uint(gl_SampleMask);
-  tint_symbol(inputs);
-}
-
 Error parsing GLSL shader:
-ERROR: 0:27: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables
-ERROR: 0:27: '' : compilation terminated 
+ERROR: 0:16: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables
+ERROR: 0:16: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_Direct.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_Direct.spvasm.expected.glsl
index 26c9ad0..883f06b 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_Direct.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_Direct.spvasm.expected.glsl
@@ -9,30 +9,18 @@
   return;
 }
 
-struct tint_symbol_2 {
-  uint x_1_param;
-};
-
-void tint_symbol_inner(uint x_1_param) {
+void tint_symbol(uint x_1_param) {
   x_1[0] = int(x_1_param);
   main_1();
 }
 
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.x_1_param);
+void main() {
+  tint_symbol(uint(gl_SampleMask[0]));
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.x_1_param = uint(gl_SampleMask);
-  tint_symbol(inputs);
-}
-
 Error parsing GLSL shader:
-ERROR: 0:27: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables
-ERROR: 0:27: '' : compilation terminated 
+ERROR: 0:16: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables
+ERROR: 0:16: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_AccessChain.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_AccessChain.spvasm.expected.glsl
index 21b0267..efc266d 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_AccessChain.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_AccessChain.spvasm.expected.glsl
@@ -9,30 +9,18 @@
   return;
 }
 
-struct tint_symbol_2 {
-  uint x_1_param;
-};
-
-void tint_symbol_inner(uint x_1_param) {
+void tint_symbol(uint x_1_param) {
   x_1[0] = x_1_param;
   main_1();
 }
 
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.x_1_param);
+void main() {
+  tint_symbol(uint(gl_SampleMask[0]));
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.x_1_param = uint(gl_SampleMask);
-  tint_symbol(inputs);
-}
-
 Error parsing GLSL shader:
-ERROR: 0:27: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables
-ERROR: 0:27: '' : compilation terminated 
+ERROR: 0:16: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables
+ERROR: 0:16: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_CopyObject.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_CopyObject.spvasm.expected.glsl
index 21b0267..efc266d 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_CopyObject.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_CopyObject.spvasm.expected.glsl
@@ -9,30 +9,18 @@
   return;
 }
 
-struct tint_symbol_2 {
-  uint x_1_param;
-};
-
-void tint_symbol_inner(uint x_1_param) {
+void tint_symbol(uint x_1_param) {
   x_1[0] = x_1_param;
   main_1();
 }
 
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.x_1_param);
+void main() {
+  tint_symbol(uint(gl_SampleMask[0]));
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.x_1_param = uint(gl_SampleMask);
-  tint_symbol(inputs);
-}
-
 Error parsing GLSL shader:
-ERROR: 0:27: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables
-ERROR: 0:27: '' : compilation terminated 
+ERROR: 0:16: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables
+ERROR: 0:16: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_Direct.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_Direct.spvasm.expected.glsl
index 545c475..760f16f 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_Direct.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_Direct.spvasm.expected.glsl
@@ -9,30 +9,18 @@
   return;
 }
 
-struct tint_symbol_2 {
-  uint x_1_param;
-};
-
-void tint_symbol_inner(uint x_1_param) {
+void tint_symbol(uint x_1_param) {
   x_1[0] = x_1_param;
   main_1();
 }
 
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.x_1_param);
+void main() {
+  tint_symbol(uint(gl_SampleMask[0]));
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.x_1_param = uint(gl_SampleMask);
-  tint_symbol(inputs);
-}
-
 Error parsing GLSL shader:
-ERROR: 0:27: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables
-ERROR: 0:27: '' : compilation terminated 
+ERROR: 0:16: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables
+ERROR: 0:16: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_WithStride.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_WithStride.spvasm.expected.glsl
index 545c475..760f16f 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_WithStride.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_WithStride.spvasm.expected.glsl
@@ -9,30 +9,18 @@
   return;
 }
 
-struct tint_symbol_2 {
-  uint x_1_param;
-};
-
-void tint_symbol_inner(uint x_1_param) {
+void tint_symbol(uint x_1_param) {
   x_1[0] = x_1_param;
   main_1();
 }
 
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.x_1_param);
+void main() {
+  tint_symbol(uint(gl_SampleMask[0]));
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.x_1_param = uint(gl_SampleMask);
-  tint_symbol(inputs);
-}
-
 Error parsing GLSL shader:
-ERROR: 0:27: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables
-ERROR: 0:27: '' : compilation terminated 
+ERROR: 0:16: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables
+ERROR: 0:16: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_AccessChain.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_AccessChain.spvasm.expected.glsl
index a71ff02..3bb9956 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_AccessChain.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_AccessChain.spvasm.expected.glsl
@@ -13,33 +13,20 @@
   uint x_1_1;
 };
 
-struct tint_symbol_1 {
-  uint x_1_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(uint(x_1[0]));
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(uint(x_1[0]));
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(0u);
-  wrapper_result.x_1_1 = inner_result.x_1_1;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  gl_SampleMask = outputs.x_1_1;
+  main_out inner_result = tint_symbol();
+  gl_SampleMask[0] = inner_result.x_1_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:35: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables
-ERROR: 0:35: '' : compilation terminated 
+ERROR: 0:22: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables
+ERROR: 0:22: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_CopyObject.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_CopyObject.spvasm.expected.glsl
index a71ff02..3bb9956 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_CopyObject.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_CopyObject.spvasm.expected.glsl
@@ -13,33 +13,20 @@
   uint x_1_1;
 };
 
-struct tint_symbol_1 {
-  uint x_1_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(uint(x_1[0]));
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(uint(x_1[0]));
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(0u);
-  wrapper_result.x_1_1 = inner_result.x_1_1;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  gl_SampleMask = outputs.x_1_1;
+  main_out inner_result = tint_symbol();
+  gl_SampleMask[0] = inner_result.x_1_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:35: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables
-ERROR: 0:35: '' : compilation terminated 
+ERROR: 0:22: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables
+ERROR: 0:22: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_Direct.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_Direct.spvasm.expected.glsl
index a71ff02..3bb9956 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_Direct.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_Direct.spvasm.expected.glsl
@@ -13,33 +13,20 @@
   uint x_1_1;
 };
 
-struct tint_symbol_1 {
-  uint x_1_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(uint(x_1[0]));
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(uint(x_1[0]));
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(0u);
-  wrapper_result.x_1_1 = inner_result.x_1_1;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  gl_SampleMask = outputs.x_1_1;
+  main_out inner_result = tint_symbol();
+  gl_SampleMask[0] = inner_result.x_1_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:35: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables
-ERROR: 0:35: '' : compilation terminated 
+ERROR: 0:22: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables
+ERROR: 0:22: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_AccessChain.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_AccessChain.spvasm.expected.glsl
index c37a82a..673165f 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_AccessChain.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_AccessChain.spvasm.expected.glsl
@@ -13,33 +13,20 @@
   uint x_1_1;
 };
 
-struct tint_symbol_1 {
-  uint x_1_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_1[0]);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_1[0]);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(0u);
-  wrapper_result.x_1_1 = inner_result.x_1_1;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  gl_SampleMask = outputs.x_1_1;
+  main_out inner_result = tint_symbol();
+  gl_SampleMask[0] = inner_result.x_1_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:35: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables
-ERROR: 0:35: '' : compilation terminated 
+ERROR: 0:22: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables
+ERROR: 0:22: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_CopyObject.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_CopyObject.spvasm.expected.glsl
index c37a82a..673165f 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_CopyObject.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_CopyObject.spvasm.expected.glsl
@@ -13,33 +13,20 @@
   uint x_1_1;
 };
 
-struct tint_symbol_1 {
-  uint x_1_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_1[0]);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_1[0]);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(0u);
-  wrapper_result.x_1_1 = inner_result.x_1_1;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  gl_SampleMask = outputs.x_1_1;
+  main_out inner_result = tint_symbol();
+  gl_SampleMask[0] = inner_result.x_1_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:35: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables
-ERROR: 0:35: '' : compilation terminated 
+ERROR: 0:22: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables
+ERROR: 0:22: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_Direct.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_Direct.spvasm.expected.glsl
index c37a82a..673165f 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_Direct.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_Direct.spvasm.expected.glsl
@@ -13,33 +13,20 @@
   uint x_1_1;
 };
 
-struct tint_symbol_1 {
-  uint x_1_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_1[0]);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_1[0]);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(0u);
-  wrapper_result.x_1_1 = inner_result.x_1_1;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  gl_SampleMask = outputs.x_1_1;
+  main_out inner_result = tint_symbol();
+  gl_SampleMask[0] = inner_result.x_1_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:35: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables
-ERROR: 0:35: '' : compilation terminated 
+ERROR: 0:22: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables
+ERROR: 0:22: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_WithStride.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_WithStride.spvasm.expected.glsl
index c37a82a..673165f 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_WithStride.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_WithStride.spvasm.expected.glsl
@@ -13,33 +13,20 @@
   uint x_1_1;
 };
 
-struct tint_symbol_1 {
-  uint x_1_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_1[0]);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_1[0]);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(0u);
-  wrapper_result.x_1_1 = inner_result.x_1_1;
-  return wrapper_result;
-}
-
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  gl_SampleMask = outputs.x_1_1;
+  main_out inner_result = tint_symbol();
+  gl_SampleMask[0] = inner_result.x_1_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:35: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables
-ERROR: 0:35: '' : compilation terminated 
+ERROR: 0:22: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables
+ERROR: 0:22: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_UseInPhiCountsAsUse.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_UseInPhiCountsAsUse.spvasm.expected.glsl
index c2423a3..6def1e9 100644
--- a/test/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_UseInPhiCountsAsUse.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_UseInPhiCountsAsUse.spvasm.expected.glsl
@@ -23,13 +23,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:12: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' const bool' and a right operand of type ' const bool' (or there is no acceptable conversion)
 ERROR: 0:12: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/SpvParserMemoryTest_ArrayLength_FromAccessChain.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvParserMemoryTest_ArrayLength_FromAccessChain.spvasm.expected.glsl
index ff5659a..6e4715f 100644
--- a/test/unittest/reader/spirv/SpvParserMemoryTest_ArrayLength_FromAccessChain.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvParserMemoryTest_ArrayLength_FromAccessChain.spvasm.expected.glsl
@@ -22,13 +22,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: '' : array size required 
 ERROR: 0:7: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/SpvParserMemoryTest_ArrayLength_FromVar.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvParserMemoryTest_ArrayLength_FromVar.spvasm.expected.glsl
index ff5659a..6e4715f 100644
--- a/test/unittest/reader/spirv/SpvParserMemoryTest_ArrayLength_FromVar.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvParserMemoryTest_ArrayLength_FromVar.spvasm.expected.glsl
@@ -22,13 +22,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: '' : array size required 
 ERROR: 0:7: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Struct_RuntimeArray.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Struct_RuntimeArray.spvasm.expected.glsl
index e499bff..2447bc0 100644
--- a/test/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Struct_RuntimeArray.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Struct_RuntimeArray.spvasm.expected.glsl
@@ -19,13 +19,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: '' : array size required 
 ERROR: 0:7: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_Cascaded.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_Cascaded.spvasm.expected.glsl
index 87c2d6d..f100aa6 100644
--- a/test/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_Cascaded.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_Cascaded.spvasm.expected.glsl
@@ -19,13 +19,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: '' : array size required 
 ERROR: 0:7: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_NonCascaded.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_NonCascaded.spvasm.expected.glsl
index f8e81e7..6b48d19 100644
--- a/test/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_NonCascaded.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_NonCascaded.spvasm.expected.glsl
@@ -20,13 +20,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: '' : array size required 
 ERROR: 0:7: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_NonCascaded_InBoundsAccessChain.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_NonCascaded_InBoundsAccessChain.spvasm.expected.glsl
index f8e81e7..6b48d19 100644
--- a/test/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_NonCascaded_InBoundsAccessChain.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_NonCascaded_InBoundsAccessChain.spvasm.expected.glsl
@@ -20,13 +20,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: '' : array size required 
 ERROR: 0:7: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_TypesAndVarDeclarations.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_TypesAndVarDeclarations.spvasm.expected.glsl
index 894d2d7..9501cea 100644
--- a/test/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_TypesAndVarDeclarations.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_TypesAndVarDeclarations.spvasm.expected.glsl
@@ -14,13 +14,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: '' : array size required 
 ERROR: 0:7: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/SpvParserTest_FRem_SpvBinaryArithTest_EmitExpression_0.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvParserTest_FRem_SpvBinaryArithTest_EmitExpression_0.spvasm.expected.glsl
index de6fcdd..7b1c356 100644
--- a/test/unittest/reader/spirv/SpvParserTest_FRem_SpvBinaryArithTest_EmitExpression_0.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvParserTest_FRem_SpvBinaryArithTest_EmitExpression_0.spvasm.expected.glsl
@@ -10,13 +10,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type ' const float' and a right operand of type ' const float' (or there is no acceptable conversion)
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/SpvParserTest_FRem_SpvBinaryArithTest_EmitExpression_1.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvParserTest_FRem_SpvBinaryArithTest_EmitExpression_1.spvasm.expected.glsl
index c811169..40f51bd 100644
--- a/test/unittest/reader/spirv/SpvParserTest_FRem_SpvBinaryArithTest_EmitExpression_1.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvParserTest_FRem_SpvBinaryArithTest_EmitExpression_1.spvasm.expected.glsl
@@ -10,13 +10,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type ' const 2-component vector of float' and a right operand of type ' const 2-component vector of float' (or there is no acceptable conversion)
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/SpvParserTest_LogicalAnd_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvParserTest_LogicalAnd_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.glsl
index 038414f..55da344 100644
--- a/test/unittest/reader/spirv/SpvParserTest_LogicalAnd_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvParserTest_LogicalAnd_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.glsl
@@ -10,13 +10,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' const bool' and a right operand of type ' const bool' (or there is no acceptable conversion)
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/SpvParserTest_LogicalAnd_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvParserTest_LogicalAnd_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.glsl
index ff590fa..2a8b795 100644
--- a/test/unittest/reader/spirv/SpvParserTest_LogicalAnd_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvParserTest_LogicalAnd_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.glsl
@@ -10,13 +10,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' const 2-component vector of bool' and a right operand of type ' const 2-component vector of bool' (or there is no acceptable conversion)
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/SpvParserTest_LogicalOr_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvParserTest_LogicalOr_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.glsl
index cef60d7..b8752ad 100644
--- a/test/unittest/reader/spirv/SpvParserTest_LogicalOr_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvParserTest_LogicalOr_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.glsl
@@ -10,13 +10,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '|' :  wrong operand types: no operation '|' exists that takes a left-hand operand of type ' const bool' and a right operand of type ' const bool' (or there is no acceptable conversion)
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/SpvParserTest_LogicalOr_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvParserTest_LogicalOr_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.glsl
index 13a2f5c..e83a55d 100644
--- a/test/unittest/reader/spirv/SpvParserTest_LogicalOr_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvParserTest_LogicalOr_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.glsl
@@ -10,13 +10,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '|' :  wrong operand types: no operation '|' exists that takes a left-hand operand of type ' const 2-component vector of bool' and a right operand of type ' const 2-component vector of bool' (or there is no acceptable conversion)
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/SpvUnaryBitTest_BitCount_IntVector_IntVector.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvUnaryBitTest_BitCount_IntVector_IntVector.spvasm.expected.glsl
index cbeafe1..a822cbb 100644
--- a/test/unittest/reader/spirv/SpvUnaryBitTest_BitCount_IntVector_IntVector.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvUnaryBitTest_BitCount_IntVector_IntVector.spvasm.expected.glsl
@@ -12,16 +12,15 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:9: 'countbits' : no matching overloaded function found 
 ERROR: 0:9: '=' :  cannot convert from ' const float' to ' temp highp 2-component vector of int'
diff --git a/test/unittest/reader/spirv/SpvUnaryBitTest_BitCount_IntVector_UintVector.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvUnaryBitTest_BitCount_IntVector_UintVector.spvasm.expected.glsl
index b468bf0..2c3f17f 100644
--- a/test/unittest/reader/spirv/SpvUnaryBitTest_BitCount_IntVector_UintVector.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvUnaryBitTest_BitCount_IntVector_UintVector.spvasm.expected.glsl
@@ -12,16 +12,15 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:9: 'countbits' : no matching overloaded function found 
 ERROR: 0:9: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/SpvUnaryBitTest_BitCount_Int_Int.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvUnaryBitTest_BitCount_Int_Int.spvasm.expected.glsl
index 0b28576..3603039 100644
--- a/test/unittest/reader/spirv/SpvUnaryBitTest_BitCount_Int_Int.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvUnaryBitTest_BitCount_Int_Int.spvasm.expected.glsl
@@ -12,16 +12,15 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:9: 'countbits' : no matching overloaded function found 
 ERROR: 0:9: '=' :  cannot convert from ' const float' to ' temp highp int'
diff --git a/test/unittest/reader/spirv/SpvUnaryBitTest_BitCount_Int_Uint.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvUnaryBitTest_BitCount_Int_Uint.spvasm.expected.glsl
index d05dca2..42c8966 100644
--- a/test/unittest/reader/spirv/SpvUnaryBitTest_BitCount_Int_Uint.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvUnaryBitTest_BitCount_Int_Uint.spvasm.expected.glsl
@@ -12,16 +12,15 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:9: 'countbits' : no matching overloaded function found 
 ERROR: 0:9: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/SpvUnaryBitTest_BitCount_UintVector_IntVector.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvUnaryBitTest_BitCount_UintVector_IntVector.spvasm.expected.glsl
index 4040339..5207092 100644
--- a/test/unittest/reader/spirv/SpvUnaryBitTest_BitCount_UintVector_IntVector.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvUnaryBitTest_BitCount_UintVector_IntVector.spvasm.expected.glsl
@@ -12,16 +12,15 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:9: 'countbits' : no matching overloaded function found 
 ERROR: 0:9: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/SpvUnaryBitTest_BitCount_UintVector_UintVector.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvUnaryBitTest_BitCount_UintVector_UintVector.spvasm.expected.glsl
index 77c801e..ff83998 100644
--- a/test/unittest/reader/spirv/SpvUnaryBitTest_BitCount_UintVector_UintVector.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvUnaryBitTest_BitCount_UintVector_UintVector.spvasm.expected.glsl
@@ -12,16 +12,15 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:9: 'countbits' : no matching overloaded function found 
 ERROR: 0:9: '=' :  cannot convert from ' const float' to ' temp highp 2-component vector of uint'
diff --git a/test/unittest/reader/spirv/SpvUnaryBitTest_BitCount_Uint_Int.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvUnaryBitTest_BitCount_Uint_Int.spvasm.expected.glsl
index 4c2933c..73cc16b 100644
--- a/test/unittest/reader/spirv/SpvUnaryBitTest_BitCount_Uint_Int.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvUnaryBitTest_BitCount_Uint_Int.spvasm.expected.glsl
@@ -12,16 +12,15 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:9: 'countbits' : no matching overloaded function found 
 ERROR: 0:9: '' : compilation terminated 
diff --git a/test/unittest/reader/spirv/SpvUnaryBitTest_BitCount_Uint_Uint.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvUnaryBitTest_BitCount_Uint_Uint.spvasm.expected.glsl
index aa5b9c3..1a25437 100644
--- a/test/unittest/reader/spirv/SpvUnaryBitTest_BitCount_Uint_Uint.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvUnaryBitTest_BitCount_Uint_Uint.spvasm.expected.glsl
@@ -12,16 +12,15 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:9: 'countbits' : no matching overloaded function found 
 ERROR: 0:9: '=' :  cannot convert from ' const float' to ' temp highp uint'
diff --git a/test/unittest/reader/spirv/SpvUnaryBitTest_BitReverse_IntVector_IntVector.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvUnaryBitTest_BitReverse_IntVector_IntVector.spvasm.expected.glsl
index d944a7f..e52852f 100644
--- a/test/unittest/reader/spirv/SpvUnaryBitTest_BitReverse_IntVector_IntVector.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvUnaryBitTest_BitReverse_IntVector_IntVector.spvasm.expected.glsl
@@ -12,16 +12,15 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:9: 'reversebits' : no matching overloaded function found 
 ERROR: 0:9: '=' :  cannot convert from ' const float' to ' temp highp 2-component vector of int'
diff --git a/test/unittest/reader/spirv/SpvUnaryBitTest_BitReverse_Int_Int.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvUnaryBitTest_BitReverse_Int_Int.spvasm.expected.glsl
index dfc6bce..6651929 100644
--- a/test/unittest/reader/spirv/SpvUnaryBitTest_BitReverse_Int_Int.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvUnaryBitTest_BitReverse_Int_Int.spvasm.expected.glsl
@@ -12,16 +12,15 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:9: 'reversebits' : no matching overloaded function found 
 ERROR: 0:9: '=' :  cannot convert from ' const float' to ' temp highp int'
diff --git a/test/unittest/reader/spirv/SpvUnaryBitTest_BitReverse_UintVector_UintVector.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvUnaryBitTest_BitReverse_UintVector_UintVector.spvasm.expected.glsl
index e600c81..84503b2 100644
--- a/test/unittest/reader/spirv/SpvUnaryBitTest_BitReverse_UintVector_UintVector.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvUnaryBitTest_BitReverse_UintVector_UintVector.spvasm.expected.glsl
@@ -12,16 +12,15 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:9: 'reversebits' : no matching overloaded function found 
 ERROR: 0:9: '=' :  cannot convert from ' const float' to ' temp highp 2-component vector of uint'
diff --git a/test/unittest/reader/spirv/SpvUnaryBitTest_BitReverse_Uint_Uint.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvUnaryBitTest_BitReverse_Uint_Uint.spvasm.expected.glsl
index c427162..f66b801 100644
--- a/test/unittest/reader/spirv/SpvUnaryBitTest_BitReverse_Uint_Uint.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvUnaryBitTest_BitReverse_Uint_Uint.spvasm.expected.glsl
@@ -12,16 +12,15 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:9: 'reversebits' : no matching overloaded function found 
 ERROR: 0:9: '=' :  cannot convert from ' const float' to ' temp highp uint'
diff --git a/test/unittest/reader/spirv/SpvUnaryLogicalTest_LogicalNot_Vector.spvasm.expected.glsl b/test/unittest/reader/spirv/SpvUnaryLogicalTest_LogicalNot_Vector.spvasm.expected.glsl
index b2641fd..01e2b29 100644
--- a/test/unittest/reader/spirv/SpvUnaryLogicalTest_LogicalNot_Vector.spvasm.expected.glsl
+++ b/test/unittest/reader/spirv/SpvUnaryLogicalTest_LogicalNot_Vector.spvasm.expected.glsl
@@ -10,13 +10,12 @@
 
 void tint_symbol() {
   main_1();
-  return;
 }
 
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '!' :  wrong operand type no operation '!' exists that takes an operand of type  const 2-component vector of bool (or there is no acceptable conversion)
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/var/inferred/function.wgsl.expected.glsl b/test/var/inferred/function.wgsl.expected.glsl
index ec327ce..797dbaf 100644
--- a/test/var/inferred/function.wgsl.expected.glsl
+++ b/test/var/inferred/function.wgsl.expected.glsl
@@ -1,29 +1,17 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 value;
 struct MyStruct {
   float f1;
 };
 
-struct tint_symbol_1 {
-  vec4 value;
-};
-
-vec4 tint_symbol_inner() {
+vec4 tint_symbol() {
   return vec4(0.0f, 0.0f, 0.0f, 0.0f);
 }
 
-tint_symbol_1 tint_symbol() {
-  vec4 inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 value;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  value = outputs.value;
+  vec4 inner_result = tint_symbol();
+  value = inner_result;
+  return;
 }
-
diff --git a/test/var/initialization/function/array.wgsl.expected.glsl b/test/var/initialization/function/array.wgsl.expected.glsl
index f3c3ba7..fde5eb7 100644
--- a/test/var/initialization/function/array.wgsl.expected.glsl
+++ b/test/var/initialization/function/array.wgsl.expected.glsl
@@ -1,13 +1,12 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   int v[3] = int[3](0, 0, 0);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/var/initialization/function/matrix.wgsl.expected.glsl b/test/var/initialization/function/matrix.wgsl.expected.glsl
index 9c74a59..0c2c827 100644
--- a/test/var/initialization/function/matrix.wgsl.expected.glsl
+++ b/test/var/initialization/function/matrix.wgsl.expected.glsl
@@ -1,13 +1,12 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   mat2x3 v = mat2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/var/initialization/function/scalar.wgsl.expected.glsl b/test/var/initialization/function/scalar.wgsl.expected.glsl
index 159b092..109c321 100644
--- a/test/var/initialization/function/scalar.wgsl.expected.glsl
+++ b/test/var/initialization/function/scalar.wgsl.expected.glsl
@@ -1,13 +1,12 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   int v = 0;
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/var/initialization/function/struct.wgsl.expected.glsl b/test/var/initialization/function/struct.wgsl.expected.glsl
index 2062576..3cf59c5 100644
--- a/test/var/initialization/function/struct.wgsl.expected.glsl
+++ b/test/var/initialization/function/struct.wgsl.expected.glsl
@@ -6,13 +6,12 @@
   float b;
 };
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   S v = S(0, 0.0f);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/var/initialization/function/vector.wgsl.expected.glsl b/test/var/initialization/function/vector.wgsl.expected.glsl
index ed2c8d1..2d1c158 100644
--- a/test/var/initialization/function/vector.wgsl.expected.glsl
+++ b/test/var/initialization/function/vector.wgsl.expected.glsl
@@ -1,13 +1,12 @@
 #version 310 es
 precision mediump float;
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   ivec3 v = ivec3(0, 0, 0);
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/var/initialization/private/array.wgsl.expected.glsl b/test/var/initialization/private/array.wgsl.expected.glsl
index 05a9731..52ecf93 100644
--- a/test/var/initialization/private/array.wgsl.expected.glsl
+++ b/test/var/initialization/private/array.wgsl.expected.glsl
@@ -2,12 +2,11 @@
 precision mediump float;
 
 int v[3] = int[3](0, 0, 0);
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/var/initialization/private/matrix.wgsl.expected.glsl b/test/var/initialization/private/matrix.wgsl.expected.glsl
index f9b2340..978af1a 100644
--- a/test/var/initialization/private/matrix.wgsl.expected.glsl
+++ b/test/var/initialization/private/matrix.wgsl.expected.glsl
@@ -2,12 +2,11 @@
 precision mediump float;
 
 mat2x3 v = mat2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/var/initialization/private/scalar.wgsl.expected.glsl b/test/var/initialization/private/scalar.wgsl.expected.glsl
index 4c21778..3ac79ef 100644
--- a/test/var/initialization/private/scalar.wgsl.expected.glsl
+++ b/test/var/initialization/private/scalar.wgsl.expected.glsl
@@ -2,12 +2,11 @@
 precision mediump float;
 
 int v = 0;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/var/initialization/private/struct.wgsl.expected.glsl b/test/var/initialization/private/struct.wgsl.expected.glsl
index 8bb397c..7226444 100644
--- a/test/var/initialization/private/struct.wgsl.expected.glsl
+++ b/test/var/initialization/private/struct.wgsl.expected.glsl
@@ -7,12 +7,11 @@
 };
 
 S v = S(0, 0.0f);
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/var/initialization/private/vector.wgsl.expected.glsl b/test/var/initialization/private/vector.wgsl.expected.glsl
index d894156..add8b0c 100644
--- a/test/var/initialization/private/vector.wgsl.expected.glsl
+++ b/test/var/initialization/private/vector.wgsl.expected.glsl
@@ -2,12 +2,11 @@
 precision mediump float;
 
 ivec3 v = ivec3(0, 0, 0);
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/var/initialization/workgroup/array.wgsl.expected.glsl b/test/var/initialization/workgroup/array.wgsl.expected.glsl
index 61851d8..adbf51c 100644
--- a/test/var/initialization/workgroup/array.wgsl.expected.glsl
+++ b/test/var/initialization/workgroup/array.wgsl.expected.glsl
@@ -2,11 +2,7 @@
 precision mediump float;
 
 shared int v[3];
-struct tint_symbol_2 {
-  uint local_invocation_index;
-};
-
-void tint_symbol_inner(uint local_invocation_index) {
+void tint_symbol(uint local_invocation_index) {
   {
     for(uint idx = local_invocation_index; (idx < 3u); idx = (idx + 1u)) {
       uint i = idx;
@@ -17,15 +13,7 @@
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.local_invocation_index);
+void main() {
+  tint_symbol(gl_LocalInvocationIndex);
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
-  tint_symbol(inputs);
-}
-
diff --git a/test/var/initialization/workgroup/matrix.wgsl.expected.glsl b/test/var/initialization/workgroup/matrix.wgsl.expected.glsl
index facd6b0..0738874 100644
--- a/test/var/initialization/workgroup/matrix.wgsl.expected.glsl
+++ b/test/var/initialization/workgroup/matrix.wgsl.expected.glsl
@@ -2,11 +2,7 @@
 precision mediump float;
 
 shared mat2x3 v;
-struct tint_symbol_2 {
-  uint local_invocation_index;
-};
-
-void tint_symbol_inner(uint local_invocation_index) {
+void tint_symbol(uint local_invocation_index) {
   {
     v = mat2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
   }
@@ -14,15 +10,7 @@
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.local_invocation_index);
+void main() {
+  tint_symbol(gl_LocalInvocationIndex);
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
-  tint_symbol(inputs);
-}
-
diff --git a/test/var/initialization/workgroup/scalar.wgsl.expected.glsl b/test/var/initialization/workgroup/scalar.wgsl.expected.glsl
index 6e9244b..dc95a7d 100644
--- a/test/var/initialization/workgroup/scalar.wgsl.expected.glsl
+++ b/test/var/initialization/workgroup/scalar.wgsl.expected.glsl
@@ -2,11 +2,7 @@
 precision mediump float;
 
 shared int v;
-struct tint_symbol_2 {
-  uint local_invocation_index;
-};
-
-void tint_symbol_inner(uint local_invocation_index) {
+void tint_symbol(uint local_invocation_index) {
   {
     v = 0;
   }
@@ -14,15 +10,7 @@
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.local_invocation_index);
+void main() {
+  tint_symbol(gl_LocalInvocationIndex);
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
-  tint_symbol(inputs);
-}
-
diff --git a/test/var/initialization/workgroup/struct.wgsl.expected.glsl b/test/var/initialization/workgroup/struct.wgsl.expected.glsl
index a0db087..87458fb 100644
--- a/test/var/initialization/workgroup/struct.wgsl.expected.glsl
+++ b/test/var/initialization/workgroup/struct.wgsl.expected.glsl
@@ -7,28 +7,16 @@
 };
 
 shared S v;
-struct tint_symbol_2 {
-  uint local_invocation_index;
-};
-
-void tint_symbol_inner(uint local_invocation_index) {
+void tint_symbol(uint local_invocation_index) {
   {
-    S tint_symbol_3 = S(0, 0.0f);
-    v = tint_symbol_3;
+    S tint_symbol_1 = S(0, 0.0f);
+    v = tint_symbol_1;
   }
   memoryBarrierShared();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.local_invocation_index);
+void main() {
+  tint_symbol(gl_LocalInvocationIndex);
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
-  tint_symbol(inputs);
-}
-
diff --git a/test/var/initialization/workgroup/vector.wgsl.expected.glsl b/test/var/initialization/workgroup/vector.wgsl.expected.glsl
index e710bb2..917de43 100644
--- a/test/var/initialization/workgroup/vector.wgsl.expected.glsl
+++ b/test/var/initialization/workgroup/vector.wgsl.expected.glsl
@@ -2,11 +2,7 @@
 precision mediump float;
 
 shared ivec3 v;
-struct tint_symbol_2 {
-  uint local_invocation_index;
-};
-
-void tint_symbol_inner(uint local_invocation_index) {
+void tint_symbol(uint local_invocation_index) {
   {
     v = ivec3(0, 0, 0);
   }
@@ -14,15 +10,7 @@
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.local_invocation_index);
+void main() {
+  tint_symbol(gl_LocalInvocationIndex);
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
-  tint_symbol(inputs);
-}
-
diff --git a/test/var/override/named/no_init/bool.wgsl.expected.glsl b/test/var/override/named/no_init/bool.wgsl.expected.glsl
index 788b030..c182ddf 100644
--- a/test/var/override/named/no_init/bool.wgsl.expected.glsl
+++ b/test/var/override/named/no_init/bool.wgsl.expected.glsl
@@ -7,15 +7,14 @@
 #error spec constant required for constant id 0
 #endif
 const bool o = WGSL_SPEC_CONSTANT_0;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '#error' : spec constant required for constant id 0  
 ERROR: 0:6: '' : missing #endif 
diff --git a/test/var/override/named/no_init/f32.wgsl.expected.glsl b/test/var/override/named/no_init/f32.wgsl.expected.glsl
index ba60055..44c356a 100644
--- a/test/var/override/named/no_init/f32.wgsl.expected.glsl
+++ b/test/var/override/named/no_init/f32.wgsl.expected.glsl
@@ -7,15 +7,14 @@
 #error spec constant required for constant id 0
 #endif
 const float o = WGSL_SPEC_CONSTANT_0;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '#error' : spec constant required for constant id 0  
 ERROR: 0:6: '' : missing #endif 
diff --git a/test/var/override/named/no_init/i32.wgsl.expected.glsl b/test/var/override/named/no_init/i32.wgsl.expected.glsl
index f2096f5..0a75ccb 100644
--- a/test/var/override/named/no_init/i32.wgsl.expected.glsl
+++ b/test/var/override/named/no_init/i32.wgsl.expected.glsl
@@ -7,15 +7,14 @@
 #error spec constant required for constant id 0
 #endif
 const int o = WGSL_SPEC_CONSTANT_0;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '#error' : spec constant required for constant id 0  
 ERROR: 0:6: '' : missing #endif 
diff --git a/test/var/override/named/no_init/u32.wgsl.expected.glsl b/test/var/override/named/no_init/u32.wgsl.expected.glsl
index 94bdd23..cba0731 100644
--- a/test/var/override/named/no_init/u32.wgsl.expected.glsl
+++ b/test/var/override/named/no_init/u32.wgsl.expected.glsl
@@ -7,15 +7,14 @@
 #error spec constant required for constant id 0
 #endif
 const uint o = WGSL_SPEC_CONSTANT_0;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '#error' : spec constant required for constant id 0  
 ERROR: 0:6: '' : missing #endif 
diff --git a/test/var/override/named/val_init/bool.wgsl.expected.glsl b/test/var/override/named/val_init/bool.wgsl.expected.glsl
index 44a7de1..e739f3f 100644
--- a/test/var/override/named/val_init/bool.wgsl.expected.glsl
+++ b/test/var/override/named/val_init/bool.wgsl.expected.glsl
@@ -5,12 +5,11 @@
 #define WGSL_SPEC_CONSTANT_0 true
 #endif
 const bool o = WGSL_SPEC_CONSTANT_0;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/var/override/named/val_init/f32.wgsl.expected.glsl b/test/var/override/named/val_init/f32.wgsl.expected.glsl
index a0849a3..8e7ca91 100644
--- a/test/var/override/named/val_init/f32.wgsl.expected.glsl
+++ b/test/var/override/named/val_init/f32.wgsl.expected.glsl
@@ -5,12 +5,11 @@
 #define WGSL_SPEC_CONSTANT_0 1.0f
 #endif
 const float o = WGSL_SPEC_CONSTANT_0;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/var/override/named/val_init/i32.wgsl.expected.glsl b/test/var/override/named/val_init/i32.wgsl.expected.glsl
index 5d536fc..51c905a 100644
--- a/test/var/override/named/val_init/i32.wgsl.expected.glsl
+++ b/test/var/override/named/val_init/i32.wgsl.expected.glsl
@@ -5,12 +5,11 @@
 #define WGSL_SPEC_CONSTANT_0 1
 #endif
 const int o = WGSL_SPEC_CONSTANT_0;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/var/override/named/val_init/u32.wgsl.expected.glsl b/test/var/override/named/val_init/u32.wgsl.expected.glsl
index fd5bad1..1e3043f 100644
--- a/test/var/override/named/val_init/u32.wgsl.expected.glsl
+++ b/test/var/override/named/val_init/u32.wgsl.expected.glsl
@@ -5,12 +5,11 @@
 #define WGSL_SPEC_CONSTANT_0 1u
 #endif
 const uint o = WGSL_SPEC_CONSTANT_0;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/var/override/named/zero_init/bool.wgsl.expected.glsl b/test/var/override/named/zero_init/bool.wgsl.expected.glsl
index fc98806..aa5de1e 100644
--- a/test/var/override/named/zero_init/bool.wgsl.expected.glsl
+++ b/test/var/override/named/zero_init/bool.wgsl.expected.glsl
@@ -5,12 +5,11 @@
 #define WGSL_SPEC_CONSTANT_0 false
 #endif
 const bool o = WGSL_SPEC_CONSTANT_0;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/var/override/named/zero_init/f32.wgsl.expected.glsl b/test/var/override/named/zero_init/f32.wgsl.expected.glsl
index 0f0bfb3..48eeb64 100644
--- a/test/var/override/named/zero_init/f32.wgsl.expected.glsl
+++ b/test/var/override/named/zero_init/f32.wgsl.expected.glsl
@@ -5,12 +5,11 @@
 #define WGSL_SPEC_CONSTANT_0 0.0f
 #endif
 const float o = WGSL_SPEC_CONSTANT_0;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/var/override/named/zero_init/i32.wgsl.expected.glsl b/test/var/override/named/zero_init/i32.wgsl.expected.glsl
index c2c5f49..85deaa5 100644
--- a/test/var/override/named/zero_init/i32.wgsl.expected.glsl
+++ b/test/var/override/named/zero_init/i32.wgsl.expected.glsl
@@ -5,12 +5,11 @@
 #define WGSL_SPEC_CONSTANT_0 0
 #endif
 const int o = WGSL_SPEC_CONSTANT_0;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/var/override/named/zero_init/u32.wgsl.expected.glsl b/test/var/override/named/zero_init/u32.wgsl.expected.glsl
index 962eeee..7b326bd 100644
--- a/test/var/override/named/zero_init/u32.wgsl.expected.glsl
+++ b/test/var/override/named/zero_init/u32.wgsl.expected.glsl
@@ -5,12 +5,11 @@
 #define WGSL_SPEC_CONSTANT_0 0u
 #endif
 const uint o = WGSL_SPEC_CONSTANT_0;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/var/override/numbered/no_init/bool.wgsl.expected.glsl b/test/var/override/numbered/no_init/bool.wgsl.expected.glsl
index a1fd32c..62e77f2 100644
--- a/test/var/override/numbered/no_init/bool.wgsl.expected.glsl
+++ b/test/var/override/numbered/no_init/bool.wgsl.expected.glsl
@@ -7,15 +7,14 @@
 #error spec constant required for constant id 1234
 #endif
 const bool o = WGSL_SPEC_CONSTANT_1234;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '#error' : spec constant required for constant id 1234  
 ERROR: 0:6: '' : missing #endif 
diff --git a/test/var/override/numbered/no_init/f32.wgsl.expected.glsl b/test/var/override/numbered/no_init/f32.wgsl.expected.glsl
index ace6cfe..07e1b48 100644
--- a/test/var/override/numbered/no_init/f32.wgsl.expected.glsl
+++ b/test/var/override/numbered/no_init/f32.wgsl.expected.glsl
@@ -7,15 +7,14 @@
 #error spec constant required for constant id 1234
 #endif
 const float o = WGSL_SPEC_CONSTANT_1234;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '#error' : spec constant required for constant id 1234  
 ERROR: 0:6: '' : missing #endif 
diff --git a/test/var/override/numbered/no_init/i32.wgsl.expected.glsl b/test/var/override/numbered/no_init/i32.wgsl.expected.glsl
index 7ba93a5..58d5bd7 100644
--- a/test/var/override/numbered/no_init/i32.wgsl.expected.glsl
+++ b/test/var/override/numbered/no_init/i32.wgsl.expected.glsl
@@ -7,15 +7,14 @@
 #error spec constant required for constant id 1234
 #endif
 const int o = WGSL_SPEC_CONSTANT_1234;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '#error' : spec constant required for constant id 1234  
 ERROR: 0:6: '' : missing #endif 
diff --git a/test/var/override/numbered/no_init/u32.wgsl.expected.glsl b/test/var/override/numbered/no_init/u32.wgsl.expected.glsl
index 80d9e41..dd791dc 100644
--- a/test/var/override/numbered/no_init/u32.wgsl.expected.glsl
+++ b/test/var/override/numbered/no_init/u32.wgsl.expected.glsl
@@ -7,15 +7,14 @@
 #error spec constant required for constant id 1234
 #endif
 const uint o = WGSL_SPEC_CONSTANT_1234;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '#error' : spec constant required for constant id 1234  
 ERROR: 0:6: '' : missing #endif 
diff --git a/test/var/override/numbered/val_init/bool.wgsl.expected.glsl b/test/var/override/numbered/val_init/bool.wgsl.expected.glsl
index e72288d..a825483 100644
--- a/test/var/override/numbered/val_init/bool.wgsl.expected.glsl
+++ b/test/var/override/numbered/val_init/bool.wgsl.expected.glsl
@@ -5,12 +5,11 @@
 #define WGSL_SPEC_CONSTANT_1234 true
 #endif
 const bool o = WGSL_SPEC_CONSTANT_1234;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/var/override/numbered/val_init/f32.wgsl.expected.glsl b/test/var/override/numbered/val_init/f32.wgsl.expected.glsl
index 264a481..805c5f3 100644
--- a/test/var/override/numbered/val_init/f32.wgsl.expected.glsl
+++ b/test/var/override/numbered/val_init/f32.wgsl.expected.glsl
@@ -5,12 +5,11 @@
 #define WGSL_SPEC_CONSTANT_1234 1.0f
 #endif
 const float o = WGSL_SPEC_CONSTANT_1234;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/var/override/numbered/val_init/i32.wgsl.expected.glsl b/test/var/override/numbered/val_init/i32.wgsl.expected.glsl
index ff99d26..dda2ff9 100644
--- a/test/var/override/numbered/val_init/i32.wgsl.expected.glsl
+++ b/test/var/override/numbered/val_init/i32.wgsl.expected.glsl
@@ -5,12 +5,11 @@
 #define WGSL_SPEC_CONSTANT_1234 1
 #endif
 const int o = WGSL_SPEC_CONSTANT_1234;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/var/override/numbered/val_init/u32.wgsl.expected.glsl b/test/var/override/numbered/val_init/u32.wgsl.expected.glsl
index a6d6f0b..d5bbf03 100644
--- a/test/var/override/numbered/val_init/u32.wgsl.expected.glsl
+++ b/test/var/override/numbered/val_init/u32.wgsl.expected.glsl
@@ -5,12 +5,11 @@
 #define WGSL_SPEC_CONSTANT_1234 1u
 #endif
 const uint o = WGSL_SPEC_CONSTANT_1234;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/var/override/numbered/zero_init/bool.wgsl.expected.glsl b/test/var/override/numbered/zero_init/bool.wgsl.expected.glsl
index 55bbfa4..7cd240b 100644
--- a/test/var/override/numbered/zero_init/bool.wgsl.expected.glsl
+++ b/test/var/override/numbered/zero_init/bool.wgsl.expected.glsl
@@ -5,12 +5,11 @@
 #define WGSL_SPEC_CONSTANT_1234 false
 #endif
 const bool o = WGSL_SPEC_CONSTANT_1234;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/var/override/numbered/zero_init/f32.wgsl.expected.glsl b/test/var/override/numbered/zero_init/f32.wgsl.expected.glsl
index 21bf19f..7b208ab 100644
--- a/test/var/override/numbered/zero_init/f32.wgsl.expected.glsl
+++ b/test/var/override/numbered/zero_init/f32.wgsl.expected.glsl
@@ -5,12 +5,11 @@
 #define WGSL_SPEC_CONSTANT_1234 0.0f
 #endif
 const float o = WGSL_SPEC_CONSTANT_1234;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/var/override/numbered/zero_init/i32.wgsl.expected.glsl b/test/var/override/numbered/zero_init/i32.wgsl.expected.glsl
index dabd0b7..d4566cc 100644
--- a/test/var/override/numbered/zero_init/i32.wgsl.expected.glsl
+++ b/test/var/override/numbered/zero_init/i32.wgsl.expected.glsl
@@ -5,12 +5,11 @@
 #define WGSL_SPEC_CONSTANT_1234 0
 #endif
 const int o = WGSL_SPEC_CONSTANT_1234;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/var/override/numbered/zero_init/u32.wgsl.expected.glsl b/test/var/override/numbered/zero_init/u32.wgsl.expected.glsl
index 80421e9..117e6bb 100644
--- a/test/var/override/numbered/zero_init/u32.wgsl.expected.glsl
+++ b/test/var/override/numbered/zero_init/u32.wgsl.expected.glsl
@@ -5,12 +5,11 @@
 #define WGSL_SPEC_CONSTANT_1234 0u
 #endif
 const uint o = WGSL_SPEC_CONSTANT_1234;
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
diff --git a/test/var/uses/many_workgroup_vars.wgsl.expected.glsl b/test/var/uses/many_workgroup_vars.wgsl.expected.glsl
index a81184b..1ff7afe 100644
--- a/test/var/uses/many_workgroup_vars.wgsl.expected.glsl
+++ b/test/var/uses/many_workgroup_vars.wgsl.expected.glsl
@@ -101,11 +101,7 @@
 shared mat2 m97;
 shared mat2 m98;
 shared mat2 m99;
-struct tint_symbol_2 {
-  uint idx;
-};
-
-void tint_symbol_inner(uint idx) {
+void tint_symbol(uint idx) {
   {
     m00 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
     m01 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
@@ -312,15 +308,7 @@
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.idx);
+void main() {
+  tint_symbol(gl_LocalInvocationIndex);
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.idx = uint(gl_LocalInvocationIndex);
-  tint_symbol(inputs);
-}
-
diff --git a/test/var/uses/private.wgsl.expected.glsl b/test/var/uses/private.wgsl.expected.glsl
index a02a261..dd7392b 100644
--- a/test/var/uses/private.wgsl.expected.glsl
+++ b/test/var/uses/private.wgsl.expected.glsl
@@ -6,17 +6,16 @@
   a = (a + 1);
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main1() {
   a = 42;
   uses_a();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   main1();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -25,17 +24,16 @@
   b = (b * 2);
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main2() {
   b = 7;
   uses_b();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   main2();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
@@ -64,30 +62,28 @@
   no_uses();
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main3() {
   outer();
   no_uses();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   main3();
+  return;
 }
-
 #version 310 es
 precision mediump float;
 
 void no_uses() {
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main4() {
   no_uses();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   main4();
+  return;
 }
-
diff --git a/test/var/uses/workgroup.wgsl.expected.glsl b/test/var/uses/workgroup.wgsl.expected.glsl
index d2c86ca..2918be4 100644
--- a/test/var/uses/workgroup.wgsl.expected.glsl
+++ b/test/var/uses/workgroup.wgsl.expected.glsl
@@ -6,11 +6,7 @@
   a = (a + 1);
 }
 
-struct tint_symbol_1 {
-  uint local_invocation_index;
-};
-
-void main1_inner(uint local_invocation_index) {
+void main1(uint local_invocation_index) {
   {
     a = 0;
   }
@@ -19,27 +15,11 @@
   uses_a();
 }
 
-struct tint_symbol_3 {
-  uint local_invocation_index_1;
-};
-
-struct tint_symbol_5 {
-  uint local_invocation_index_2;
-};
-
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void main1(tint_symbol_1 tint_symbol) {
-  main1_inner(tint_symbol.local_invocation_index);
+void main() {
+  main1(gl_LocalInvocationIndex);
   return;
 }
-
-
-void main() {
-  tint_symbol_1 inputs;
-  inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
-  main1(inputs);
-}
-
 #version 310 es
 precision mediump float;
 
@@ -48,15 +28,7 @@
   b = (b * 2);
 }
 
-struct tint_symbol_1 {
-  uint local_invocation_index;
-};
-
-struct tint_symbol_3 {
-  uint local_invocation_index_1;
-};
-
-void main2_inner(uint local_invocation_index_1) {
+void main2(uint local_invocation_index_1) {
   {
     b = 0;
   }
@@ -65,23 +37,11 @@
   uses_b();
 }
 
-struct tint_symbol_5 {
-  uint local_invocation_index_2;
-};
-
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void main2(tint_symbol_3 tint_symbol_2) {
-  main2_inner(tint_symbol_2.local_invocation_index_1);
+void main() {
+  main2(gl_LocalInvocationIndex);
   return;
 }
-
-
-void main() {
-  tint_symbol_3 inputs;
-  inputs.local_invocation_index_1 = uint(gl_LocalInvocationIndex);
-  main2(inputs);
-}
-
 #version 310 es
 precision mediump float;
 
@@ -110,19 +70,7 @@
   no_uses();
 }
 
-struct tint_symbol_1 {
-  uint local_invocation_index;
-};
-
-struct tint_symbol_3 {
-  uint local_invocation_index_1;
-};
-
-struct tint_symbol_5 {
-  uint local_invocation_index_2;
-};
-
-void main3_inner(uint local_invocation_index_2) {
+void main3(uint local_invocation_index_2) {
   {
     a = 0;
     b = 0;
@@ -133,43 +81,22 @@
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void main3(tint_symbol_5 tint_symbol_4) {
-  main3_inner(tint_symbol_4.local_invocation_index_2);
+void main() {
+  main3(gl_LocalInvocationIndex);
   return;
 }
-
-
-void main() {
-  tint_symbol_5 inputs;
-  inputs.local_invocation_index_2 = uint(gl_LocalInvocationIndex);
-  main3(inputs);
-}
-
 #version 310 es
 precision mediump float;
 
 void no_uses() {
 }
 
-struct tint_symbol_1 {
-  uint local_invocation_index;
-};
-
-struct tint_symbol_3 {
-  uint local_invocation_index_1;
-};
-
-struct tint_symbol_5 {
-  uint local_invocation_index_2;
-};
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main4() {
   no_uses();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   main4();
+  return;
 }
-
diff --git a/test/vk-gl-cts/graphicsfuzz/barrier-in-loop-with-break/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/barrier-in-loop-with-break/0-opt.spvasm.expected.glsl
index 93c8bb3..1c13254 100644
--- a/test/vk-gl-cts/graphicsfuzz/barrier-in-loop-with-break/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/barrier-in-loop-with-break/0-opt.spvasm.expected.glsl
@@ -49,28 +49,16 @@
   return;
 }
 
-struct tint_symbol_4 {
-  uvec3 tint_symbol_2;
-};
-
-void tint_symbol_1_inner(uvec3 tint_symbol_2) {
+void tint_symbol_1(uvec3 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
 }
 
 layout(local_size_x = 16, local_size_y = 1, local_size_z = 1) in;
-void tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
+void main() {
+  tint_symbol_1(gl_LocalInvocationID);
   return;
 }
-
-
-void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_LocalInvocationID;
-  tint_symbol_1(inputs);
-}
-
 Error parsing GLSL shader:
 ERROR: 0:6: '' : array size required 
 ERROR: 0:7: '' : compilation terminated 
diff --git a/test/vk-gl-cts/graphicsfuzz/barrier-in-loop-with-break/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/barrier-in-loop-with-break/0-opt.wgsl.expected.glsl
index ff8ddc5..acddae3 100644
--- a/test/vk-gl-cts/graphicsfuzz/barrier-in-loop-with-break/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/barrier-in-loop-with-break/0-opt.wgsl.expected.glsl
@@ -53,28 +53,16 @@
   return;
 }
 
-struct tint_symbol_4 {
-  uvec3 tint_symbol_2;
-};
-
-void tint_symbol_1_inner(uvec3 tint_symbol_2) {
+void tint_symbol_1(uvec3 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
 }
 
 layout(local_size_x = 16, local_size_y = 1, local_size_z = 1) in;
-void tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
+void main() {
+  tint_symbol_1(gl_LocalInvocationID);
   return;
 }
-
-
-void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_LocalInvocationID;
-  tint_symbol_1(inputs);
-}
-
 Error parsing GLSL shader:
 ERROR: 0:6: '' : array size required 
 ERROR: 0:7: '' : compilation terminated 
diff --git a/test/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.spvasm.expected.glsl
index e03004c..237995c 100644
--- a/test/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct buf0 {
   vec2 injectionSwitch;
 };
@@ -194,41 +195,21 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_6 = main_out(x_GLF_color);
-  return tint_symbol_6;
+  main_out tint_symbol_3 = main_out(x_GLF_color);
+  return tint_symbol_3;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:104: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
-ERROR: 0:104: '' : compilation terminated 
+ERROR: 0:105: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
+ERROR: 0:105: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-mod-zero/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-mod-zero/0-opt.wgsl.expected.glsl
index c39a0db..abb8a2d 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-mod-zero/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-mod-zero/0-opt.wgsl.expected.glsl
@@ -11,6 +11,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   int el;
 };
@@ -70,33 +71,20 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:33: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type ' const float' and a right operand of type ' const float' (or there is no acceptable conversion)
-ERROR: 0:33: '' : compilation terminated 
+ERROR: 0:34: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type ' const float' and a right operand of type ' const float' (or there is no acceptable conversion)
+ERROR: 0:34: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-module-small-number/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-module-small-number/0-opt.spvasm.expected.glsl
index 932f6e3..6c40eda 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-module-small-number/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-module-small-number/0-opt.spvasm.expected.glsl
@@ -4,6 +4,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   int el;
 };
@@ -78,33 +79,20 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:42: '|' :  wrong operand types: no operation '|' exists that takes a left-hand operand of type ' global bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
-ERROR: 0:42: '' : compilation terminated 
+ERROR: 0:43: '|' :  wrong operand types: no operation '|' exists that takes a left-hand operand of type ' global bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
+ERROR: 0:43: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-module-small-number/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-module-small-number/0-opt.wgsl.expected.glsl
index 990ae87..4782e04 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-module-small-number/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-module-small-number/0-opt.wgsl.expected.glsl
@@ -15,6 +15,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   int el;
 };
@@ -104,33 +105,20 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:31: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type ' const float' and a right operand of type ' const float' (or there is no acceptable conversion)
-ERROR: 0:31: '' : compilation terminated 
+ERROR: 0:32: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type ' const float' and a right operand of type ' const float' (or there is no acceptable conversion)
+ERROR: 0:32: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-tanh/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-tanh/0-opt.spvasm.expected.glsl
index 08ce5c5..c42e697 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-tanh/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-tanh/0-opt.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 vec4 x_GLF_color = vec4(0.0f, 0.0f, 0.0f, 0.0f);
 void main_1() {
   vec4 v = vec4(0.0f, 0.0f, 0.0f, 0.0f);
@@ -23,33 +24,20 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:12: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
-ERROR: 0:12: '' : compilation terminated 
+ERROR: 0:13: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
+ERROR: 0:13: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-unpackunorm-loop/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-unpackunorm-loop/0-opt.spvasm.expected.glsl
index 240e031..4c65bdc 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-unpackunorm-loop/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-unpackunorm-loop/0-opt.spvasm.expected.glsl
@@ -10,6 +10,7 @@
 }
 
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   int el;
 };
@@ -59,30 +60,17 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'uint4' : undeclared identifier 
 ERROR: 0:6: '' : compilation terminated 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-unpackunorm-loop/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-unpackunorm-loop/0-opt.wgsl.expected.glsl
index 6167451..130cb5f 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-unpackunorm-loop/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-unpackunorm-loop/0-opt.wgsl.expected.glsl
@@ -14,6 +14,7 @@
 }
 
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   int el;
 };
@@ -63,30 +64,17 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'uint4' : undeclared identifier 
 ERROR: 0:6: '' : compilation terminated 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-bitcount/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-bitcount/0-opt.spvasm.expected.glsl
index 2e0d58b..fe32bd4 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-bitcount/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-bitcount/0-opt.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   float el;
 };
@@ -72,42 +73,22 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_6 = main_out(x_GLF_color);
-  return tint_symbol_6;
+  main_out tint_symbol_3 = main_out(x_GLF_color);
+  return tint_symbol_3;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:39: 'countbits' : no matching overloaded function found 
-ERROR: 0:39: 'assign' :  cannot convert from ' const float' to ' temp mediump int'
-ERROR: 0:39: '' : compilation terminated 
+ERROR: 0:40: 'countbits' : no matching overloaded function found 
+ERROR: 0:40: 'assign' :  cannot convert from ' const float' to ' temp mediump int'
+ERROR: 0:40: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-bitcount/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-bitcount/0-opt.wgsl.expected.glsl
index 29f6381..c64c3de 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-bitcount/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-bitcount/0-opt.wgsl.expected.glsl
@@ -11,6 +11,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   float el;
 };
@@ -80,42 +81,22 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_6 = main_out(x_GLF_color);
-  return tint_symbol_6;
+  main_out tint_symbol_3 = main_out(x_GLF_color);
+  return tint_symbol_3;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:39: 'countbits' : no matching overloaded function found 
-ERROR: 0:39: 'assign' :  cannot convert from ' const float' to ' temp mediump int'
-ERROR: 0:39: '' : compilation terminated 
+ERROR: 0:40: 'countbits' : no matching overloaded function found 
+ERROR: 0:40: 'assign' :  cannot convert from ' const float' to ' temp mediump int'
+ERROR: 0:40: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-bitfieldreverse-loop-limit-underflow/0.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-bitfieldreverse-loop-limit-underflow/0.spvasm.expected.glsl
index 4560304..93a8edf 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-bitfieldreverse-loop-limit-underflow/0.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-bitfieldreverse-loop-limit-underflow/0.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   int el;
 };
@@ -67,33 +68,20 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:23: 'reversebits' : no matching overloaded function found 
-ERROR: 0:23: '' : compilation terminated 
+ERROR: 0:24: 'reversebits' : no matching overloaded function found 
+ERROR: 0:24: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-bitfieldreverse-loop-limit-underflow/0.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-bitfieldreverse-loop-limit-underflow/0.wgsl.expected.glsl
index 31c8c48..a8ff3ff 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-bitfieldreverse-loop-limit-underflow/0.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-bitfieldreverse-loop-limit-underflow/0.wgsl.expected.glsl
@@ -7,6 +7,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   int el;
 };
@@ -71,33 +72,20 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:23: 'reversebits' : no matching overloaded function found 
-ERROR: 0:23: '' : compilation terminated 
+ERROR: 0:24: 'reversebits' : no matching overloaded function found 
+ERROR: 0:24: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-color-output-undefined-in-unexecuted-branch/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-color-output-undefined-in-unexecuted-branch/0-opt.spvasm.expected.glsl
index ebf3312..deecf4f 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-color-output-undefined-in-unexecuted-branch/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-color-output-undefined-in-unexecuted-branch/0-opt.spvasm.expected.glsl
@@ -10,6 +10,7 @@
 }
 
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   float el;
 };
@@ -135,38 +136,18 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_6 = main_out(x_GLF_color);
-  return tint_symbol_6;
+  main_out tint_symbol_3 = main_out(x_GLF_color);
+  return tint_symbol_3;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'int4' : undeclared identifier 
 ERROR: 0:6: '' : compilation terminated 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-color-output-undefined-in-unexecuted-branch/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-color-output-undefined-in-unexecuted-branch/0-opt.wgsl.expected.glsl
index 2259446..89c8827 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-color-output-undefined-in-unexecuted-branch/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-color-output-undefined-in-unexecuted-branch/0-opt.wgsl.expected.glsl
@@ -22,6 +22,7 @@
 }
 
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   float el;
 };
@@ -147,38 +148,18 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_6 = main_out(x_GLF_color);
-  return tint_symbol_6;
+  main_out tint_symbol_3 = main_out(x_GLF_color);
+  return tint_symbol_3;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'int4' : undeclared identifier 
 ERROR: 0:6: '' : compilation terminated 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-inside-while/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-inside-while/0-opt.spvasm.expected.glsl
index 64413c4..c191135 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-inside-while/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-inside-while/0-opt.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 vec4 x_GLF_color = vec4(0.0f, 0.0f, 0.0f, 0.0f);
 void main_1() {
   int i = 0;
@@ -29,33 +30,20 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:18: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
-ERROR: 0:18: '' : compilation terminated 
+ERROR: 0:19: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
+ERROR: 0:19: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-mod-one-one-lte/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-mod-one-one-lte/0-opt.wgsl.expected.glsl
index 900486a..9835939 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-mod-one-one-lte/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-mod-one-one-lte/0-opt.wgsl.expected.glsl
@@ -7,6 +7,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   int el;
 };
@@ -38,33 +39,20 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:18: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type ' const float' and a right operand of type ' const float' (or there is no acceptable conversion)
-ERROR: 0:18: '' : compilation terminated 
+ERROR: 0:19: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type ' const float' and a right operand of type ' const float' (or there is no acceptable conversion)
+ERROR: 0:19: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-constant-folding-atan-over-tanh/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-constant-folding-atan-over-tanh/0-opt.spvasm.expected.glsl
index 82ba3e2..f5fd0fd 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-constant-folding-atan-over-tanh/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-constant-folding-atan-over-tanh/0-opt.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 vec4 x_GLF_color = vec4(0.0f, 0.0f, 0.0f, 0.0f);
 void main_1() {
   float f = 0.0f;
@@ -19,33 +20,20 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:8: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
-ERROR: 0:8: '' : compilation terminated 
+ERROR: 0:9: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
+ERROR: 0:9: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-loop-bitfieldreverse/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-loop-bitfieldreverse/0-opt.spvasm.expected.glsl
index e676744..0662c76 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-loop-bitfieldreverse/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-loop-bitfieldreverse/0-opt.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   int el;
 };
@@ -53,33 +54,20 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:28: 'reversebits' : no matching overloaded function found 
-ERROR: 0:28: '' : compilation terminated 
+ERROR: 0:29: 'reversebits' : no matching overloaded function found 
+ERROR: 0:29: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-loop-bitfieldreverse/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-loop-bitfieldreverse/0-opt.wgsl.expected.glsl
index 270ef81..8631354 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-loop-bitfieldreverse/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-loop-bitfieldreverse/0-opt.wgsl.expected.glsl
@@ -7,6 +7,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   int el;
 };
@@ -57,33 +58,20 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:28: 'reversebits' : no matching overloaded function found 
-ERROR: 0:28: '' : compilation terminated 
+ERROR: 0:29: 'reversebits' : no matching overloaded function found 
+ERROR: 0:29: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-derivative-uniform-vector-global-loop-count/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-derivative-uniform-vector-global-loop-count/0-opt.spvasm.expected.glsl
index ff629a4..abe7c04 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-derivative-uniform-vector-global-loop-count/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-derivative-uniform-vector-global-loop-count/0-opt.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   float el;
 };
@@ -88,33 +89,20 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:55: 'ddx' : no matching overloaded function found 
-ERROR: 0:55: '' : compilation terminated 
+ERROR: 0:56: 'ddx' : no matching overloaded function found 
+ERROR: 0:56: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-derivative-uniform-vector-global-loop-count/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-derivative-uniform-vector-global-loop-count/0-opt.wgsl.expected.glsl
index a1dd337..aee6a91 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-derivative-uniform-vector-global-loop-count/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-derivative-uniform-vector-global-loop-count/0-opt.wgsl.expected.glsl
@@ -11,6 +11,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   float el;
 };
@@ -96,33 +97,20 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:55: 'ddx' : no matching overloaded function found 
-ERROR: 0:55: '' : compilation terminated 
+ERROR: 0:56: 'ddx' : no matching overloaded function found 
+ERROR: 0:56: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-divide-matrix-transpose-by-constant/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-divide-matrix-transpose-by-constant/0-opt.spvasm.expected.glsl
index 6320755..1a75fe7 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-divide-matrix-transpose-by-constant/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-divide-matrix-transpose-by-constant/0-opt.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 vec4 x_GLF_color = vec4(0.0f, 0.0f, 0.0f, 0.0f);
 void main_1() {
   mat2 m = mat2(0.0f, 0.0f, 0.0f, 0.0f);
@@ -20,33 +21,20 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:9: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' global bool' and a right operand of type ' global bool' (or there is no acceptable conversion)
-ERROR: 0:9: '' : compilation terminated 
+ERROR: 0:10: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' global bool' and a right operand of type ' global bool' (or there is no acceptable conversion)
+ERROR: 0:10: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-const-variable/0.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-const-variable/0.spvasm.expected.glsl
index bb9081f..07c55d6 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-const-variable/0.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-const-variable/0.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 vec4 x_GLF_color = vec4(0.0f, 0.0f, 0.0f, 0.0f);
 void main_1() {
   bool a = false;
@@ -19,33 +20,20 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:8: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' const bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
-ERROR: 0:8: '' : compilation terminated 
+ERROR: 0:9: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' const bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
+ERROR: 0:9: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.spvasm.expected.glsl
index 1ac4916..b898335 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 vec4 tint_symbol = vec4(0.0f, 0.0f, 0.0f, 0.0f);
 vec4 x_GLF_color = vec4(0.0f, 0.0f, 0.0f, 0.0f);
 void main_1() {
@@ -30,41 +31,21 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_6 = main_out(x_GLF_color);
-  return tint_symbol_6;
+  main_out tint_symbol_3 = main_out(x_GLF_color);
+  return tint_symbol_3;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:13: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' const bool' (or there is no acceptable conversion)
-ERROR: 0:13: '' : compilation terminated 
+ERROR: 0:14: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' const bool' (or there is no acceptable conversion)
+ERROR: 0:14: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-or-constant/0.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-or-constant/0.spvasm.expected.glsl
index 621b4bb..e0962bf 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-or-constant/0.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-or-constant/0.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 vec4 tint_symbol = vec4(0.0f, 0.0f, 0.0f, 0.0f);
 vec4 x_GLF_color = vec4(0.0f, 0.0f, 0.0f, 0.0f);
 void main_1() {
@@ -19,41 +20,21 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_6 = main_out(x_GLF_color);
-  return tint_symbol_6;
+  main_out tint_symbol_3 = main_out(x_GLF_color);
+  return tint_symbol_3;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:8: '|' :  wrong operand types: no operation '|' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' const bool' (or there is no acceptable conversion)
-ERROR: 0:8: '' : compilation terminated 
+ERROR: 0:9: '|' :  wrong operand types: no operation '|' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' const bool' (or there is no acceptable conversion)
+ERROR: 0:9: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fold-shift-gte32/0.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-fold-shift-gte32/0.spvasm.expected.glsl
index 6c4965b..a575f8d 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fold-shift-gte32/0.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fold-shift-gte32/0.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct buf0 {
   uint one;
 };
@@ -61,33 +62,20 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:50: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
-ERROR: 0:50: '' : compilation terminated 
+ERROR: 0:51: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
+ERROR: 0:51: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-div-mul/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-div-mul/0-opt.spvasm.expected.glsl
index c3ca7d7..01f5b05 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-div-mul/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-div-mul/0-opt.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct buf0 {
   float one;
 };
@@ -28,33 +29,20 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:17: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
-ERROR: 0:17: '' : compilation terminated 
+ERROR: 0:18: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
+ERROR: 0:18: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-divs/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-divs/0-opt.spvasm.expected.glsl
index 8be8ca8..b2ee650 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-divs/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-divs/0-opt.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct buf0 {
   float four;
 };
@@ -28,33 +29,20 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:17: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
-ERROR: 0:17: '' : compilation terminated 
+ERROR: 0:18: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
+ERROR: 0:18: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-mul-div/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-mul-div/0-opt.spvasm.expected.glsl
index abd1a1e..eb1e063 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-mul-div/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-mul-div/0-opt.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct buf0 {
   float one;
 };
@@ -28,33 +29,20 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:17: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
-ERROR: 0:17: '' : compilation terminated 
+ERROR: 0:18: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
+ERROR: 0:18: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-extract/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-extract/0-opt.spvasm.expected.glsl
index df8d742..bffa90b 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-extract/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-extract/0-opt.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct buf0 {
   vec2 injectionSwitch;
 };
@@ -26,33 +27,20 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:15: '' : boolean expression expected 
-ERROR: 0:15: '' : compilation terminated 
+ERROR: 0:16: '' : boolean expression expected 
+ERROR: 0:16: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-extract/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-extract/0-opt.wgsl.expected.glsl
index df8d742..bffa90b 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-extract/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-extract/0-opt.wgsl.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct buf0 {
   vec2 injectionSwitch;
 };
@@ -26,33 +27,20 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:15: '' : boolean expression expected 
-ERROR: 0:15: '' : compilation terminated 
+ERROR: 0:16: '' : boolean expression expected 
+ERROR: 0:16: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-mix/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-mix/0-opt.spvasm.expected.glsl
index 7f816f4..a6f3655 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-mix/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-mix/0-opt.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct buf0 {
   vec2 threeandfour;
 };
@@ -31,33 +32,20 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:17: '' : boolean expression expected 
-ERROR: 0:17: '' : compilation terminated 
+ERROR: 0:18: '' : boolean expression expected 
+ERROR: 0:18: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-mix/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-mix/0-opt.wgsl.expected.glsl
index 7f816f4..a6f3655 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-mix/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-mix/0-opt.wgsl.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct buf0 {
   vec2 threeandfour;
 };
@@ -31,33 +32,20 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:17: '' : boolean expression expected 
-ERROR: 0:17: '' : compilation terminated 
+ERROR: 0:18: '' : boolean expression expected 
+ERROR: 0:18: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fract-asin-undefined-never-used/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-fract-asin-undefined-never-used/0-opt.spvasm.expected.glsl
index 745c67c..b3a2077 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fract-asin-undefined-never-used/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fract-asin-undefined-never-used/0-opt.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   float el;
 };
@@ -53,41 +54,21 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_6 = main_out(x_GLF_color);
-  return tint_symbol_6;
+  main_out tint_symbol_3 = main_out(x_GLF_color);
+  return tint_symbol_3;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:34: 'frac' : no matching overloaded function found 
-ERROR: 0:34: '' : compilation terminated 
+ERROR: 0:35: 'frac' : no matching overloaded function found 
+ERROR: 0:35: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fract-asin-undefined-never-used/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-fract-asin-undefined-never-used/0-opt.wgsl.expected.glsl
index 4d08ecf..0d7cabe 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fract-asin-undefined-never-used/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fract-asin-undefined-never-used/0-opt.wgsl.expected.glsl
@@ -11,6 +11,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   float el;
 };
@@ -61,41 +62,21 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_6 = main_out(x_GLF_color);
-  return tint_symbol_6;
+  main_out tint_symbol_3 = main_out(x_GLF_color);
+  return tint_symbol_3;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:34: 'frac' : no matching overloaded function found 
-ERROR: 0:34: '' : compilation terminated 
+ERROR: 0:35: 'frac' : no matching overloaded function found 
+ERROR: 0:35: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fract-smoothstep-undefined/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-fract-smoothstep-undefined/0-opt.spvasm.expected.glsl
index cd589ef..0ee42ce 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fract-smoothstep-undefined/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fract-smoothstep-undefined/0-opt.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   float el;
 };
@@ -56,34 +57,21 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:25: 'frac' : no matching overloaded function found 
-ERROR: 0:25: 'assign' :  cannot convert from ' const float' to ' temp mediump 2-component vector of float'
-ERROR: 0:25: '' : compilation terminated 
+ERROR: 0:26: 'frac' : no matching overloaded function found 
+ERROR: 0:26: 'assign' :  cannot convert from ' const float' to ' temp mediump 2-component vector of float'
+ERROR: 0:26: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fract-smoothstep-undefined/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-fract-smoothstep-undefined/0-opt.wgsl.expected.glsl
index 3eb01e8..40fa5ab 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fract-smoothstep-undefined/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fract-smoothstep-undefined/0-opt.wgsl.expected.glsl
@@ -7,6 +7,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   float el;
 };
@@ -60,34 +61,21 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:25: 'frac' : no matching overloaded function found 
-ERROR: 0:25: 'assign' :  cannot convert from ' const float' to ' temp mediump 2-component vector of float'
-ERROR: 0:25: '' : compilation terminated 
+ERROR: 0:26: 'frac' : no matching overloaded function found 
+ERROR: 0:26: 'assign' :  cannot convert from ' const float' to ' temp mediump 2-component vector of float'
+ERROR: 0:26: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.spvasm.expected.glsl
index 948c9ac..9dcb6b4 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   int el;
 };
@@ -68,33 +69,20 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:41: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' const bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
-ERROR: 0:41: '' : compilation terminated 
+ERROR: 0:42: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' const bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
+ERROR: 0:42: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.spvasm.expected.glsl
index a7a4d11..fba2266 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   int el;
 };
@@ -90,33 +91,20 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:33: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
-ERROR: 0:33: '' : compilation terminated 
+ERROR: 0:34: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
+ERROR: 0:34: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-pack-unpack/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-pack-unpack/0-opt.spvasm.expected.glsl
index 924667c..077ea9b 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-pack-unpack/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-pack-unpack/0-opt.spvasm.expected.glsl
@@ -15,6 +15,7 @@
 }
 
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   float el;
 };
@@ -114,30 +115,17 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'uint4' : undeclared identifier 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-pack-unpack/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-pack-unpack/0-opt.wgsl.expected.glsl
index 6f2da38..12038bd 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-pack-unpack/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-pack-unpack/0-opt.wgsl.expected.glsl
@@ -23,6 +23,7 @@
 }
 
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   float el;
 };
@@ -122,30 +123,17 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'uint4' : undeclared identifier 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-mul-div-rem-if-undefined-divide-mix/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-mul-div-rem-if-undefined-divide-mix/0-opt.spvasm.expected.glsl
index 4097def..0942b77 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-mul-div-rem-if-undefined-divide-mix/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-mul-div-rem-if-undefined-divide-mix/0-opt.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   int el;
 };
@@ -77,41 +78,21 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_6 = main_out(x_GLF_color);
-  return tint_symbol_6;
+  main_out tint_symbol_3 = main_out(x_GLF_color);
+  return tint_symbol_3;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:32: 'ddx' : no matching overloaded function found 
-ERROR: 0:32: '' : compilation terminated 
+ERROR: 0:33: 'ddx' : no matching overloaded function found 
+ERROR: 0:33: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-mul-div-rem-if-undefined-divide-mix/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-mul-div-rem-if-undefined-divide-mix/0-opt.wgsl.expected.glsl
index 0bd2ff4..4680b6a 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-mul-div-rem-if-undefined-divide-mix/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-mul-div-rem-if-undefined-divide-mix/0-opt.wgsl.expected.glsl
@@ -11,6 +11,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   int el;
 };
@@ -85,41 +86,21 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_6 = main_out(x_GLF_color);
-  return tint_symbol_6;
+  main_out tint_symbol_3 = main_out(x_GLF_color);
+  return tint_symbol_3;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:32: 'ddx' : no matching overloaded function found 
-ERROR: 0:32: '' : compilation terminated 
+ERROR: 0:33: 'ddx' : no matching overloaded function found 
+ERROR: 0:33: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-pack-unpack/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-pack-unpack/0-opt.spvasm.expected.glsl
index 68c2991..614a628 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-pack-unpack/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-pack-unpack/0-opt.spvasm.expected.glsl
@@ -15,6 +15,7 @@
 }
 
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   float el;
 };
@@ -106,30 +107,17 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'uint2' : undeclared identifier 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-pack-unpack/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-pack-unpack/0-opt.wgsl.expected.glsl
index 578af5f..6067775 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-pack-unpack/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-pack-unpack/0-opt.wgsl.expected.glsl
@@ -23,6 +23,7 @@
 }
 
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   float el;
 };
@@ -114,30 +115,17 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'uint2' : undeclared identifier 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-mix-mix-clamp/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-mix-mix-clamp/0-opt.spvasm.expected.glsl
index dc10b7c..831d9b6 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-mix-mix-clamp/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-mix-mix-clamp/0-opt.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   int el;
 };
@@ -94,33 +95,20 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:63: '' : boolean expression expected 
-ERROR: 0:63: '' : compilation terminated 
+ERROR: 0:64: '' : boolean expression expected 
+ERROR: 0:64: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-mix-mix-clamp/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-mix-mix-clamp/0-opt.wgsl.expected.glsl
index 34dee10..1e4b69d 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-mix-mix-clamp/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-mix-mix-clamp/0-opt.wgsl.expected.glsl
@@ -11,6 +11,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   int el;
 };
@@ -102,33 +103,20 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:63: '' : boolean expression expected 
-ERROR: 0:63: '' : compilation terminated 
+ERROR: 0:64: '' : boolean expression expected 
+ERROR: 0:64: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-pack-unpack/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-pack-unpack/0-opt.spvasm.expected.glsl
index c01ff1b..0f1b8ba 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-pack-unpack/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-pack-unpack/0-opt.spvasm.expected.glsl
@@ -15,6 +15,7 @@
 }
 
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   int el;
 };
@@ -105,30 +106,17 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'uint2' : undeclared identifier 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-pack-unpack/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-pack-unpack/0-opt.wgsl.expected.glsl
index 1f2976f..64925a1 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-pack-unpack/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-pack-unpack/0-opt.wgsl.expected.glsl
@@ -23,6 +23,7 @@
 }
 
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   int el;
 };
@@ -113,30 +114,17 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'uint2' : undeclared identifier 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-packsnorm-unpackunorm/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-packsnorm-unpackunorm/0-opt.spvasm.expected.glsl
index daf4a25..bded584 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-packsnorm-unpackunorm/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-packsnorm-unpackunorm/0-opt.spvasm.expected.glsl
@@ -15,6 +15,7 @@
 }
 
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   float el;
 };
@@ -107,30 +108,17 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'int4' : undeclared identifier 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-packsnorm-unpackunorm/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-packsnorm-unpackunorm/0-opt.wgsl.expected.glsl
index bb34234..471a1b8 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-packsnorm-unpackunorm/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-packsnorm-unpackunorm/0-opt.wgsl.expected.glsl
@@ -23,6 +23,7 @@
 }
 
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   float el;
 };
@@ -115,30 +116,17 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'int4' : undeclared identifier 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-value-tracking-inversesqrt/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-inst-value-tracking-inversesqrt/0-opt.spvasm.expected.glsl
index 6e9c639..b6862f6 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-value-tracking-inversesqrt/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-value-tracking-inversesqrt/0-opt.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   float el;
 };
@@ -35,33 +36,20 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:19: 'rsqrt' : no matching overloaded function found 
-ERROR: 0:19: '' : compilation terminated 
+ERROR: 0:20: 'rsqrt' : no matching overloaded function found 
+ERROR: 0:20: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-value-tracking-inversesqrt/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-inst-value-tracking-inversesqrt/0-opt.wgsl.expected.glsl
index 7412095..794bec9 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-value-tracking-inversesqrt/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-value-tracking-inversesqrt/0-opt.wgsl.expected.glsl
@@ -7,6 +7,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   float el;
 };
@@ -39,33 +40,20 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:19: 'rsqrt' : no matching overloaded function found 
-ERROR: 0:19: '' : compilation terminated 
+ERROR: 0:20: 'rsqrt' : no matching overloaded function found 
+ERROR: 0:20: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-acos-undefined/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-acos-undefined/0-opt.wgsl.expected.glsl
index a24ab1b..d67ac88 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-acos-undefined/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-acos-undefined/0-opt.wgsl.expected.glsl
@@ -11,6 +11,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   int el;
 };
@@ -58,33 +59,20 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:37: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type ' temp mediump float' and a right operand of type ' global highp float' (or there is no acceptable conversion)
-ERROR: 0:37: '' : compilation terminated 
+ERROR: 0:38: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type ' temp mediump float' and a right operand of type ' global highp float' (or there is no acceptable conversion)
+ERROR: 0:38: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-sqrt-undefined/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-sqrt-undefined/0-opt.wgsl.expected.glsl
index a4101cc..35c15b0 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-sqrt-undefined/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-sqrt-undefined/0-opt.wgsl.expected.glsl
@@ -11,6 +11,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   int el;
 };
@@ -58,33 +59,20 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:37: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type ' global highp float' and a right operand of type ' temp mediump float' (or there is no acceptable conversion)
-ERROR: 0:37: '' : compilation terminated 
+ERROR: 0:38: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type ' global highp float' and a right operand of type ' temp mediump float' (or there is no acceptable conversion)
+ERROR: 0:38: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.spvasm.expected.glsl
index d0d1427..116a3a2 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   int el;
 };
@@ -26,8 +27,8 @@
   int x_33 = x_6.x_GLF_uniform_int_values[3].el;
   int x_35 = x_6.x_GLF_uniform_int_values[5].el;
   int x_37 = x_6.x_GLF_uniform_int_values[2].el;
-  int tint_symbol_2[3] = int[3](x_33, x_35, x_37);
-  arr = tint_symbol_2;
+  int tint_symbol_1[3] = int[3](x_33, x_35, x_37);
+  arr = tint_symbol_1;
   index = 1;
   while (true) {
     bool x_51 = false;
@@ -86,33 +87,20 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_3 = main_out(x_GLF_color);
-  return tint_symbol_3;
+  main_out tint_symbol_2 = main_out(x_GLF_color);
+  return tint_symbol_2;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:36: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
-ERROR: 0:36: '' : compilation terminated 
+ERROR: 0:37: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
+ERROR: 0:37: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-loop-dfdx-constant-divide/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-loop-dfdx-constant-divide/0-opt.spvasm.expected.glsl
index b3674d4..8c65410 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-loop-dfdx-constant-divide/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-loop-dfdx-constant-divide/0-opt.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   float el;
 };
@@ -81,33 +82,20 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:54: 'ddx' : no matching overloaded function found 
-ERROR: 0:54: '' : compilation terminated 
+ERROR: 0:55: 'ddx' : no matching overloaded function found 
+ERROR: 0:55: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-loop-dfdx-constant-divide/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-loop-dfdx-constant-divide/0-opt.wgsl.expected.glsl
index 3480250..d34fc48 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-loop-dfdx-constant-divide/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-loop-dfdx-constant-divide/0-opt.wgsl.expected.glsl
@@ -11,6 +11,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   float el;
 };
@@ -89,33 +90,20 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:54: 'ddx' : no matching overloaded function found 
-ERROR: 0:54: '' : compilation terminated 
+ERROR: 0:55: 'ddx' : no matching overloaded function found 
+ERROR: 0:55: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.spvasm.expected.glsl
index c262568..d07d066 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   float el;
 };
@@ -92,41 +93,21 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_6 = main_out(x_GLF_color);
-  return tint_symbol_6;
+  main_out tint_symbol_3 = main_out(x_GLF_color);
+  return tint_symbol_3;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:75: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' global bool' and a right operand of type ' global bool' (or there is no acceptable conversion)
-ERROR: 0:75: '' : compilation terminated 
+ERROR: 0:76: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' global bool' and a right operand of type ' global bool' (or there is no acceptable conversion)
+ERROR: 0:76: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.spvasm.expected.glsl
index 3517d05..284ba47 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   int el;
 };
@@ -43,33 +44,20 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:26: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' global bool' and a right operand of type ' global bool' (or there is no acceptable conversion)
-ERROR: 0:26: '' : compilation terminated 
+ERROR: 0:27: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' global bool' and a right operand of type ' global bool' (or there is no acceptable conversion)
+ERROR: 0:27: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-missing-return-value-function-never-called/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-missing-return-value-function-never-called/0-opt.spvasm.expected.glsl
index 159f5eb..793f1f9 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-missing-return-value-function-never-called/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-missing-return-value-function-never-called/0-opt.spvasm.expected.glsl
@@ -9,6 +9,7 @@
 }
 
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct buf1 {
   uint one;
 };
@@ -70,38 +71,18 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_6 = main_out(x_GLF_color);
-  return tint_symbol_6;
+  main_out tint_symbol_3 = main_out(x_GLF_color);
+  return tint_symbol_3;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'uint4' : undeclared identifier 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-missing-return-value-function-never-called/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-missing-return-value-function-never-called/0-opt.wgsl.expected.glsl
index 580bf97..6cc7b62 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-missing-return-value-function-never-called/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-missing-return-value-function-never-called/0-opt.wgsl.expected.glsl
@@ -13,6 +13,7 @@
 }
 
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct buf1 {
   uint one;
 };
@@ -74,38 +75,18 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_6 = main_out(x_GLF_color);
-  return tint_symbol_6;
+  main_out tint_symbol_3 = main_out(x_GLF_color);
+  return tint_symbol_3;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'uint4' : undeclared identifier 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-mod-uint-bits-float/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-mod-uint-bits-float/0-opt.wgsl.expected.glsl
index 7a79be9..e5bc8a0 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-mod-uint-bits-float/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-mod-uint-bits-float/0-opt.wgsl.expected.glsl
@@ -7,6 +7,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   float el;
 };
@@ -41,33 +42,20 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:19: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type ' global highp float' and a right operand of type ' const float' (or there is no acceptable conversion)
-ERROR: 0:19: '' : compilation terminated 
+ERROR: 0:20: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type ' global highp float' and a right operand of type ' const float' (or there is no acceptable conversion)
+ERROR: 0:20: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.spvasm.expected.glsl
index 5da0515..cd6a9d6 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct buf2 {
   float one;
 };
@@ -129,41 +130,21 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_6 = main_out(x_GLF_color);
-  return tint_symbol_6;
+  main_out tint_symbol_3 = main_out(x_GLF_color);
+  return tint_symbol_3;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:112: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' global bool' and a right operand of type ' global bool' (or there is no acceptable conversion)
-ERROR: 0:112: '' : compilation terminated 
+ERROR: 0:113: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' global bool' and a right operand of type ' global bool' (or there is no acceptable conversion)
+ERROR: 0:113: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-packhalf-unpackunorm/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-packhalf-unpackunorm/0-opt.spvasm.expected.glsl
index 0db518e..5c52cb4 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-packhalf-unpackunorm/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-packhalf-unpackunorm/0-opt.spvasm.expected.glsl
@@ -15,6 +15,7 @@
 }
 
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   float el;
 };
@@ -116,30 +117,17 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'uint2' : undeclared identifier 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-packhalf-unpackunorm/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-packhalf-unpackunorm/0-opt.wgsl.expected.glsl
index 6e1e672..d320dbd 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-packhalf-unpackunorm/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-packhalf-unpackunorm/0-opt.wgsl.expected.glsl
@@ -23,6 +23,7 @@
 }
 
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   float el;
 };
@@ -124,30 +125,17 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: 'uint2' : undeclared identifier 
 ERROR: 0:5: '' : compilation terminated 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.spvasm.expected.glsl
index 7554d63..99d1320 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   float el;
 };
@@ -42,33 +43,20 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:26: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
-ERROR: 0:26: '' : compilation terminated 
+ERROR: 0:27: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
+ERROR: 0:27: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-reduce-load-array-replace-extract/0.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-reduce-load-array-replace-extract/0.spvasm.expected.glsl
index fcb1f43..5e8bad9 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-reduce-load-array-replace-extract/0.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-reduce-load-array-replace-extract/0.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct buf0 {
   int zero;
 };
@@ -40,33 +41,20 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:29: '|' :  wrong operand types: no operation '|' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
-ERROR: 0:29: '' : compilation terminated 
+ERROR: 0:30: '|' :  wrong operand types: no operation '|' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
+ERROR: 0:30: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.spvasm.expected.glsl
index 3aa7fe4..393473c 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   int el;
 };
@@ -81,33 +82,20 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:64: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' global bool' and a right operand of type ' global bool' (or there is no acceptable conversion)
-ERROR: 0:64: '' : compilation terminated 
+ERROR: 0:65: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' global bool' and a right operand of type ' global bool' (or there is no acceptable conversion)
+ERROR: 0:65: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-simplify-modulo-1/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-simplify-modulo-1/0-opt.wgsl.expected.glsl
index 5243039..97fce96 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-simplify-modulo-1/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-simplify-modulo-1/0-opt.wgsl.expected.glsl
@@ -11,6 +11,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   float el;
 };
@@ -59,33 +60,20 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:32: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type ' temp mediump float' and a right operand of type ' const float' (or there is no acceptable conversion)
-ERROR: 0:32: '' : compilation terminated 
+ERROR: 0:33: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type ' temp mediump float' and a right operand of type ' const float' (or there is no acceptable conversion)
+ERROR: 0:33: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.spvasm.expected.glsl
index fdb27df..d0cbc9b 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct buf0 {
   float two;
 };
@@ -32,41 +33,21 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_6 = main_out(x_GLF_color);
-  return tint_symbol_6;
+  main_out tint_symbol_3 = main_out(x_GLF_color);
+  return tint_symbol_3;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:18: 'ddx' : no matching overloaded function found 
-ERROR: 0:18: '' : compilation terminated 
+ERROR: 0:19: 'ddx' : no matching overloaded function found 
+ERROR: 0:19: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.wgsl.expected.glsl
index 93fdda1..a252376 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.wgsl.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct buf0 {
   float two;
 };
@@ -36,41 +37,21 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_6 = main_out(x_GLF_color);
-  return tint_symbol_6;
+  main_out tint_symbol_3 = main_out(x_GLF_color);
+  return tint_symbol_3;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:18: 'ddx' : no matching overloaded function found 
-ERROR: 0:18: '' : compilation terminated 
+ERROR: 0:19: 'ddx' : no matching overloaded function found 
+ERROR: 0:19: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-transpose-multiply/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-transpose-multiply/0-opt.spvasm.expected.glsl
index d2284c0..24594c7 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-transpose-multiply/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-transpose-multiply/0-opt.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 vec4 x_GLF_color = vec4(0.0f, 0.0f, 0.0f, 0.0f);
 void main_1() {
   mat2 m = mat2(0.0f, 0.0f, 0.0f, 0.0f);
@@ -21,33 +22,20 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:10: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' global bool' and a right operand of type ' global bool' (or there is no acceptable conversion)
-ERROR: 0:10: '' : compilation terminated 
+ERROR: 0:11: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' global bool' and a right operand of type ' global bool' (or there is no acceptable conversion)
+ERROR: 0:11: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-trunc-fract-always-zero/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-trunc-fract-always-zero/0-opt.spvasm.expected.glsl
index 24ddbb4..d425050 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-trunc-fract-always-zero/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-trunc-fract-always-zero/0-opt.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   float el;
 };
@@ -54,41 +55,21 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_6 = main_out(x_GLF_color);
-  return tint_symbol_6;
+  main_out tint_symbol_3 = main_out(x_GLF_color);
+  return tint_symbol_3;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:34: 'frac' : no matching overloaded function found 
-ERROR: 0:34: '' : compilation terminated 
+ERROR: 0:35: 'frac' : no matching overloaded function found 
+ERROR: 0:35: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-trunc-fract-always-zero/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-trunc-fract-always-zero/0-opt.wgsl.expected.glsl
index 1eb2456..6146823 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-trunc-fract-always-zero/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-trunc-fract-always-zero/0-opt.wgsl.expected.glsl
@@ -11,6 +11,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   float el;
 };
@@ -62,41 +63,21 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_6 = main_out(x_GLF_color);
-  return tint_symbol_6;
+  main_out tint_symbol_3 = main_out(x_GLF_color);
+  return tint_symbol_3;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:34: 'frac' : no matching overloaded function found 
-ERROR: 0:34: '' : compilation terminated 
+ERROR: 0:35: 'frac' : no matching overloaded function found 
+ERROR: 0:35: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-unpack-unorm-mix-always-one/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-unpack-unorm-mix-always-one/0-opt.spvasm.expected.glsl
index e012d93..8c0d134 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-unpack-unorm-mix-always-one/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-unpack-unorm-mix-always-one/0-opt.spvasm.expected.glsl
@@ -10,6 +10,7 @@
 }
 
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   uint el;
 };
@@ -77,30 +78,17 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'uint4' : undeclared identifier 
 ERROR: 0:6: '' : compilation terminated 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-unpack-unorm-mix-always-one/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-unpack-unorm-mix-always-one/0-opt.wgsl.expected.glsl
index 2e45df0..af56b5c 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-unpack-unorm-mix-always-one/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-unpack-unorm-mix-always-one/0-opt.wgsl.expected.glsl
@@ -22,6 +22,7 @@
 }
 
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   uint el;
 };
@@ -89,30 +90,17 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:6: 'uint4' : undeclared identifier 
 ERROR: 0:6: '' : compilation terminated 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-unused-access-past-matrix-elements/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-unused-access-past-matrix-elements/0-opt.spvasm.expected.glsl
index 8d9cc95..d060ee9 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-unused-access-past-matrix-elements/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-unused-access-past-matrix-elements/0-opt.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   float el;
 };
@@ -44,8 +45,8 @@
   float x_58 = x_6.x_GLF_uniform_float_values[0].el;
   float x_60 = x_6.x_GLF_uniform_float_values[0].el;
   float x_62 = x_6.x_GLF_uniform_float_values[0].el;
-  tint_padded_array_element tint_symbol_2[3] = tint_padded_array_element[3](tint_padded_array_element(x_58), tint_padded_array_element(x_60), tint_padded_array_element(x_62));
-  sums = tint_symbol_2;
+  tint_padded_array_element tint_symbol_1[3] = tint_padded_array_element[3](tint_padded_array_element(x_58), tint_padded_array_element(x_60), tint_padded_array_element(x_62));
+  sums = tint_symbol_1;
   int x_65 = x_8.x_GLF_uniform_int_values[0].el;
   i = x_65;
   x_67_phi = x_65;
@@ -99,34 +100,21 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_3 = main_out(x_GLF_color);
-  return tint_symbol_3;
+  main_out tint_symbol_2 = main_out(x_GLF_color);
+  return tint_symbol_2;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:73: '[' :  matrix index out of range '4'
-ERROR: 0:73: '=' :  cannot convert from ' temp mediump 3-component vector of float' to ' temp mediump float'
-ERROR: 0:73: '' : compilation terminated 
+ERROR: 0:74: '[' :  matrix index out of range '4'
+ERROR: 0:74: '=' :  cannot convert from ' temp mediump 3-component vector of float' to ' temp mediump float'
+ERROR: 0:74: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-unused-access-past-matrix-elements/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-unused-access-past-matrix-elements/0-opt.wgsl.expected.glsl
index e8a53f7..7cc77ec 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-unused-access-past-matrix-elements/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-unused-access-past-matrix-elements/0-opt.wgsl.expected.glsl
@@ -11,6 +11,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   float el;
 };
@@ -52,8 +53,8 @@
   float x_58 = x_6.x_GLF_uniform_float_values[0].el;
   float x_60 = x_6.x_GLF_uniform_float_values[0].el;
   float x_62 = x_6.x_GLF_uniform_float_values[0].el;
-  tint_padded_array_element tint_symbol_2[3] = tint_padded_array_element[3](tint_padded_array_element(x_58), tint_padded_array_element(x_60), tint_padded_array_element(x_62));
-  sums = tint_symbol_2;
+  tint_padded_array_element tint_symbol_1[3] = tint_padded_array_element[3](tint_padded_array_element(x_58), tint_padded_array_element(x_60), tint_padded_array_element(x_62));
+  sums = tint_symbol_1;
   int x_65 = x_8.x_GLF_uniform_int_values[0].el;
   i = x_65;
   x_67_phi = x_65;
@@ -107,34 +108,21 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_3 = main_out(x_GLF_color);
-  return tint_symbol_3;
+  main_out tint_symbol_2 = main_out(x_GLF_color);
+  return tint_symbol_2;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:73: '[' :  matrix index out of range '4'
-ERROR: 0:73: '=' :  cannot convert from ' temp mediump 3-component vector of float' to ' temp mediump float'
-ERROR: 0:73: '' : compilation terminated 
+ERROR: 0:74: '[' :  matrix index out of range '4'
+ERROR: 0:74: '=' :  cannot convert from ' temp mediump 3-component vector of float' to ' temp mediump float'
+ERROR: 0:74: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.spvasm.expected.glsl
index 229597b..f3909fa 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   int el;
 };
@@ -95,33 +96,20 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:78: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' global bool' and a right operand of type ' global bool' (or there is no acceptable conversion)
-ERROR: 0:78: '' : compilation terminated 
+ERROR: 0:79: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' global bool' and a right operand of type ' global bool' (or there is no acceptable conversion)
+ERROR: 0:79: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-vector-dce-unused-component/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-vector-dce-unused-component/0-opt.spvasm.expected.glsl
index 89aaf52..03a6930 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-vector-dce-unused-component/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-vector-dce-unused-component/0-opt.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 vec4 x_GLF_color = vec4(0.0f, 0.0f, 0.0f, 0.0f);
 void main_1() {
   vec2 a = vec2(0.0f, 0.0f);
@@ -24,34 +25,21 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:11: 'frac' : no matching overloaded function found 
-ERROR: 0:11: 'assign' :  cannot convert from ' const float' to ' temp mediump 2-component vector of float'
-ERROR: 0:11: '' : compilation terminated 
+ERROR: 0:12: 'frac' : no matching overloaded function found 
+ERROR: 0:12: 'assign' :  cannot convert from ' const float' to ' temp mediump 2-component vector of float'
+ERROR: 0:12: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-vector-dce-unused-component/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-vector-dce-unused-component/0-opt.wgsl.expected.glsl
index 89aaf52..03a6930 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-vector-dce-unused-component/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-vector-dce-unused-component/0-opt.wgsl.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 vec4 x_GLF_color = vec4(0.0f, 0.0f, 0.0f, 0.0f);
 void main_1() {
   vec2 a = vec2(0.0f, 0.0f);
@@ -24,34 +25,21 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:11: 'frac' : no matching overloaded function found 
-ERROR: 0:11: 'assign' :  cannot convert from ' const float' to ' temp mediump 2-component vector of float'
-ERROR: 0:11: '' : compilation terminated 
+ERROR: 0:12: 'frac' : no matching overloaded function found 
+ERROR: 0:12: 'assign' :  cannot convert from ' const float' to ' temp mediump 2-component vector of float'
+ERROR: 0:12: '' : compilation terminated 
 ERROR: 3 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-write-past-matrix-elements-unused/0.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-write-past-matrix-elements-unused/0.spvasm.expected.glsl
index 5f684ce..a78e4c1 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-write-past-matrix-elements-unused/0.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-write-past-matrix-elements-unused/0.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   float el;
 };
@@ -38,8 +39,8 @@
   if ((x_45 == 1)) {
     m32[3][x_45] = x_40;
   }
-  float tint_symbol_2[3] = float[3](x_40, x_40, x_40);
-  sums = tint_symbol_2;
+  float tint_symbol_1[3] = float[3](x_40, x_40, x_40);
+  sums = tint_symbol_1;
   x_52_phi = x_45;
   while (true) {
     int x_53 = 0;
@@ -70,33 +71,20 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_3 = main_out(x_GLF_color);
-  return tint_symbol_3;
+  main_out tint_symbol_2 = main_out(x_GLF_color);
+  return tint_symbol_2;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:37: '[' :  matrix index out of range '3'
-ERROR: 0:37: '' : compilation terminated 
+ERROR: 0:38: '[' :  matrix index out of range '3'
+ERROR: 0:38: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-write-past-matrix-elements-unused/0.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-write-past-matrix-elements-unused/0.wgsl.expected.glsl
index 69875f3..808d973 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-write-past-matrix-elements-unused/0.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-write-past-matrix-elements-unused/0.wgsl.expected.glsl
@@ -11,6 +11,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct tint_padded_array_element {
   float el;
 };
@@ -46,8 +47,8 @@
   if ((x_45 == 1)) {
     m32[3][x_45] = x_40;
   }
-  float tint_symbol_2[3] = float[3](x_40, x_40, x_40);
-  sums = tint_symbol_2;
+  float tint_symbol_1[3] = float[3](x_40, x_40, x_40);
+  sums = tint_symbol_1;
   x_52_phi = x_45;
   while (true) {
     int x_53 = 0;
@@ -78,33 +79,20 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_3 = main_out(x_GLF_color);
-  return tint_symbol_3;
+  main_out tint_symbol_2 = main_out(x_GLF_color);
+  return tint_symbol_2;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:37: '[' :  matrix index out of range '3'
-ERROR: 0:37: '' : compilation terminated 
+ERROR: 0:38: '[' :  matrix index out of range '3'
+ERROR: 0:38: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/loop-dead-if-loop/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/loop-dead-if-loop/0-opt.spvasm.expected.glsl
index 2a18332..bbe0055 100644
--- a/test/vk-gl-cts/graphicsfuzz/loop-dead-if-loop/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/loop-dead-if-loop/0-opt.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct buf0 {
   vec2 injectionSwitch;
 };
@@ -61,33 +62,20 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:34: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
-ERROR: 0:34: '' : compilation terminated 
+ERROR: 0:35: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
+ERROR: 0:35: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.spvasm.expected.glsl
index 980e746..91863a8 100644
--- a/test/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct buf0 {
   vec2 injectionSwitch;
 };
@@ -79,33 +80,20 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:45: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
-ERROR: 0:45: '' : compilation terminated 
+ERROR: 0:46: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
+ERROR: 0:46: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.spvasm.expected.glsl
index bfeab0a..db85f5d 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct buf0 {
   vec2 injectionSwitch;
 };
@@ -257,41 +258,21 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_6 = main_out(x_GLF_color);
-  return tint_symbol_6;
+  main_out tint_symbol_3 = main_out(x_GLF_color);
+  return tint_symbol_3;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:36: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
-ERROR: 0:36: '' : compilation terminated 
+ERROR: 0:37: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
+ERROR: 0:37: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.spvasm.expected.glsl
index 728e211..a75f0f6 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct buf0 {
   vec2 injectionSwitch;
 };
@@ -267,41 +268,21 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_6 = main_out(x_GLF_color);
-  return tint_symbol_6;
+  main_out tint_symbol_3 = main_out(x_GLF_color);
+  return tint_symbol_3;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:36: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
-ERROR: 0:36: '' : compilation terminated 
+ERROR: 0:37: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
+ERROR: 0:37: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.spvasm.expected.glsl
index a8566ed..e8d2725 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct buf0 {
   vec2 injectionSwitch;
 };
@@ -261,41 +262,21 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_6 = main_out(x_GLF_color);
-  return tint_symbol_6;
+  main_out tint_symbol_3 = main_out(x_GLF_color);
+  return tint_symbol_3;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:36: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
-ERROR: 0:36: '' : compilation terminated 
+ERROR: 0:37: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
+ERROR: 0:37: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.spvasm.expected.glsl
index 26f8b15..37cb9ef 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct buf0 {
   vec2 injectionSwitch;
 };
@@ -39,8 +40,8 @@
     int x_64_phi = 0;
     int x_63 = x_63_phi;
     int x_68[10] = data;
-    int tint_symbol_6[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-    data = tint_symbol_6;
+    int tint_symbol_3[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+    data = tint_symbol_3;
     data = x_68;
     int x_69 = (x_63 + 1);
     x_64_phi = x_69;
@@ -341,41 +342,21 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_7 = main_out(x_GLF_color);
-  return tint_symbol_7;
+  main_out tint_symbol_4 = main_out(x_GLF_color);
+  return tint_symbol_4;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:173: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
-ERROR: 0:173: '' : compilation terminated 
+ERROR: 0:174: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
+ERROR: 0:174: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.spvasm.expected.glsl
index 34de0db..5b14e49 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct buf0 {
   vec2 injectionSwitch;
 };
@@ -337,41 +338,21 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_6 = main_out(x_GLF_color);
-  return tint_symbol_6;
+  main_out tint_symbol_3 = main_out(x_GLF_color);
+  return tint_symbol_3;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:169: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
-ERROR: 0:169: '' : compilation terminated 
+ERROR: 0:170: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
+ERROR: 0:170: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.spvasm.expected.glsl
index c4596a5..436b0e2 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct buf0 {
   vec2 injectionSwitch;
 };
@@ -253,41 +254,21 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_6 = main_out(x_GLF_color);
-  return tint_symbol_6;
+  main_out tint_symbol_3 = main_out(x_GLF_color);
+  return tint_symbol_3;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:32: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
-ERROR: 0:32: '' : compilation terminated 
+ERROR: 0:33: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
+ERROR: 0:33: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.spvasm.expected.glsl
index 9125dea..9942e20 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct buf0 {
   vec2 injectionSwitch;
 };
@@ -273,41 +274,21 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_6 = main_out(x_GLF_color);
-  return tint_symbol_6;
+  main_out tint_symbol_3 = main_out(x_GLF_color);
+  return tint_symbol_3;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:32: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
-ERROR: 0:32: '' : compilation terminated 
+ERROR: 0:33: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
+ERROR: 0:33: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.spvasm.expected.glsl
index 26d7215..f92ed9e 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct buf0 {
   vec2 injectionSwitch;
 };
@@ -358,41 +359,21 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_6 = main_out(x_GLF_color);
-  return tint_symbol_6;
+  main_out tint_symbol_3 = main_out(x_GLF_color);
+  return tint_symbol_3;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:55: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
-ERROR: 0:55: '' : compilation terminated 
+ERROR: 0:56: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
+ERROR: 0:56: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.spvasm.expected.glsl
index 76950a8..968c3c2 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct buf0 {
   vec2 injectionSwitch;
 };
@@ -357,41 +358,21 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_6 = main_out(x_GLF_color);
-  return tint_symbol_6;
+  main_out tint_symbol_3 = main_out(x_GLF_color);
+  return tint_symbol_3;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:54: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
-ERROR: 0:54: '' : compilation terminated 
+ERROR: 0:55: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
+ERROR: 0:55: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.spvasm.expected.glsl
index f03d8f4..c74ad05 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct buf0 {
   vec2 injectionSwitch;
 };
@@ -177,8 +178,8 @@
           int x_170 = x_91;
           int x_171 = x_92;
           int x_173[10] = data;
-          int tint_symbol_6[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-          data = tint_symbol_6;
+          int tint_symbol_3[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+          data = tint_symbol_3;
           data = x_173;
           x_89 = ((x_170 + x_171) - 1);
           x_88 = min(((x_91 + (2 * x_92)) - 1), x_93);
@@ -254,41 +255,21 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_7 = main_out(x_GLF_color);
-  return tint_symbol_7;
+  main_out tint_symbol_4 = main_out(x_GLF_color);
+  return tint_symbol_4;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:32: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
-ERROR: 0:32: '' : compilation terminated 
+ERROR: 0:33: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
+ERROR: 0:33: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.spvasm.expected.glsl
index 99425f8..c2fa1fd 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct buf0 {
   vec2 injectionSwitch;
 };
@@ -248,41 +249,21 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_6 = main_out(x_GLF_color);
-  return tint_symbol_6;
+  main_out tint_symbol_3 = main_out(x_GLF_color);
+  return tint_symbol_3;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:32: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
-ERROR: 0:32: '' : compilation terminated 
+ERROR: 0:33: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
+ERROR: 0:33: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-float-mat-determinant-clamp/0.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-float-mat-determinant-clamp/0.wgsl.expected.glsl
index f062c66..1a4f5d2 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-float-mat-determinant-clamp/0.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-float-mat-determinant-clamp/0.wgsl.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct buf0 {
   vec2 resolution;
 };
@@ -84,41 +85,21 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_6 = main_out(x_GLF_color);
-  return tint_symbol_6;
+  main_out tint_symbol_3 = main_out(x_GLF_color);
+  return tint_symbol_3;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:26: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type ' temp float' and a right operand of type ' global mediump float' (or there is no acceptable conversion)
-ERROR: 0:26: '' : compilation terminated 
+ERROR: 0:27: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type ' temp float' and a right operand of type ' global mediump float' (or there is no acceptable conversion)
+ERROR: 0:27: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-injected-conditional-true/1.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-injected-conditional-true/1.wgsl.expected.glsl
index b4f5b64..9d3977b 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-injected-conditional-true/1.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-injected-conditional-true/1.wgsl.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct buf0 {
   vec2 resolution;
 };
@@ -100,41 +101,21 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_6 = main_out(x_GLF_color);
-  return tint_symbol_6;
+  main_out tint_symbol_3 = main_out(x_GLF_color);
+  return tint_symbol_3;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:34: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type ' temp float' and a right operand of type ' global mediump float' (or there is no acceptable conversion)
-ERROR: 0:34: '' : compilation terminated 
+ERROR: 0:35: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type ' temp float' and a right operand of type ' global mediump float' (or there is no acceptable conversion)
+ERROR: 0:35: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-simple-loop/1.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-simple-loop/1.wgsl.expected.glsl
index ebadc40..257f592 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-simple-loop/1.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-simple-loop/1.wgsl.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct buf0 {
   vec2 resolution;
 };
@@ -116,41 +117,21 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_6 = main_out(x_GLF_color);
-  return tint_symbol_6;
+  main_out tint_symbol_3 = main_out(x_GLF_color);
+  return tint_symbol_3;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:34: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type ' temp float' and a right operand of type ' global mediump float' (or there is no acceptable conversion)
-ERROR: 0:34: '' : compilation terminated 
+ERROR: 0:35: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type ' temp float' and a right operand of type ' global mediump float' (or there is no acceptable conversion)
+ERROR: 0:35: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-vec3-values-from-matrix/1.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-vec3-values-from-matrix/1.wgsl.expected.glsl
index 80288d1..c04d2ac 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-vec3-values-from-matrix/1.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-vec3-values-from-matrix/1.wgsl.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct buf0 {
   vec2 resolution;
 };
@@ -89,41 +90,21 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_6 = main_out(x_GLF_color);
-  return tint_symbol_6;
+  main_out tint_symbol_3 = main_out(x_GLF_color);
+  return tint_symbol_3;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:26: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type ' temp float' and a right operand of type ' global mediump float' (or there is no acceptable conversion)
-ERROR: 0:26: '' : compilation terminated 
+ERROR: 0:27: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type ' temp float' and a right operand of type ' global mediump float' (or there is no acceptable conversion)
+ERROR: 0:27: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.spvasm.expected.glsl
index b8e2a5b..09947df 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct buf0 {
   vec2 injectionSwitch;
 };
@@ -287,41 +288,21 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_6 = main_out(x_GLF_color);
-  return tint_symbol_6;
+  main_out tint_symbol_3 = main_out(x_GLF_color);
+  return tint_symbol_3;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:32: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
-ERROR: 0:32: '' : compilation terminated 
+ERROR: 0:33: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
+ERROR: 0:33: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.spvasm.expected.glsl
index 8f5b8b2..b261483 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct buf0 {
   vec2 injectionSwitch;
 };
@@ -342,41 +343,21 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_6 = main_out(x_GLF_color);
-  return tint_symbol_6;
+  main_out tint_symbol_3 = main_out(x_GLF_color);
+  return tint_symbol_3;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:136: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
-ERROR: 0:136: '' : compilation terminated 
+ERROR: 0:137: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
+ERROR: 0:137: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.spvasm.expected.glsl
index 1b2c1b2..8bd4692 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct buf0 {
   vec2 injectionSwitch;
 };
@@ -263,41 +264,21 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_6 = main_out(x_GLF_color);
-  return tint_symbol_6;
+  main_out tint_symbol_3 = main_out(x_GLF_color);
+  return tint_symbol_3;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:32: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
-ERROR: 0:32: '' : compilation terminated 
+ERROR: 0:33: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
+ERROR: 0:33: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.spvasm.expected.glsl
index c0b137c..b5b553c 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct buf0 {
   vec2 resolution;
 };
@@ -136,41 +137,21 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_6 = main_out(x_GLF_color);
-  return tint_symbol_6;
+  main_out tint_symbol_3 = main_out(x_GLF_color);
+  return tint_symbol_3;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:65: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
-ERROR: 0:65: '' : compilation terminated 
+ERROR: 0:66: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
+ERROR: 0:66: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.wgsl.expected.glsl
index c0b137c..b5b553c 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.wgsl.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct buf0 {
   vec2 resolution;
 };
@@ -136,41 +137,21 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_6 = main_out(x_GLF_color);
-  return tint_symbol_6;
+  main_out tint_symbol_3 = main_out(x_GLF_color);
+  return tint_symbol_3;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:65: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
-ERROR: 0:65: '' : compilation terminated 
+ERROR: 0:66: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
+ERROR: 0:66: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.spvasm.expected.glsl
index 6a8426f..6a47168 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct buf0 {
   vec2 resolution;
 };
@@ -118,41 +119,21 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_6 = main_out(x_GLF_color);
-  return tint_symbol_6;
+  main_out tint_symbol_3 = main_out(x_GLF_color);
+  return tint_symbol_3;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:60: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
-ERROR: 0:60: '' : compilation terminated 
+ERROR: 0:61: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
+ERROR: 0:61: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.wgsl.expected.glsl
index 6a8426f..6a47168 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.wgsl.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct buf0 {
   vec2 resolution;
 };
@@ -118,41 +119,21 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_6 = main_out(x_GLF_color);
-  return tint_symbol_6;
+  main_out tint_symbol_3 = main_out(x_GLF_color);
+  return tint_symbol_3;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:60: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
-ERROR: 0:60: '' : compilation terminated 
+ERROR: 0:61: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
+ERROR: 0:61: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.spvasm.expected.glsl
index e57336b..e9e375a 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct buf0 {
   vec2 resolution;
 };
@@ -145,41 +146,21 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_6 = main_out(x_GLF_color);
-  return tint_symbol_6;
+  main_out tint_symbol_3 = main_out(x_GLF_color);
+  return tint_symbol_3;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:87: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
-ERROR: 0:87: '' : compilation terminated 
+ERROR: 0:88: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
+ERROR: 0:88: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.wgsl.expected.glsl
index e57336b..e9e375a 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.wgsl.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct buf0 {
   vec2 resolution;
 };
@@ -145,41 +146,21 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_6 = main_out(x_GLF_color);
-  return tint_symbol_6;
+  main_out tint_symbol_3 = main_out(x_GLF_color);
+  return tint_symbol_3;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:87: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
-ERROR: 0:87: '' : compilation terminated 
+ERROR: 0:88: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
+ERROR: 0:88: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-conditional-clamped-float/0.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-conditional-clamped-float/0.spvasm.expected.glsl
index 0389bd3..c1ad3ac 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-conditional-clamped-float/0.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-conditional-clamped-float/0.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct buf0 {
   vec2 resolution;
 };
@@ -118,41 +119,21 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_6 = main_out(x_GLF_color);
-  return tint_symbol_6;
+  main_out tint_symbol_3 = main_out(x_GLF_color);
+  return tint_symbol_3;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:60: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
-ERROR: 0:60: '' : compilation terminated 
+ERROR: 0:61: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
+ERROR: 0:61: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.spvasm.expected.glsl
index 908ee2c..4ba0f6f 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct buf0 {
   vec2 resolution;
 };
@@ -121,41 +122,21 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_6 = main_out(x_GLF_color);
-  return tint_symbol_6;
+  main_out tint_symbol_3 = main_out(x_GLF_color);
+  return tint_symbol_3;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:61: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
-ERROR: 0:61: '' : compilation terminated 
+ERROR: 0:62: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
+ERROR: 0:62: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.wgsl.expected.glsl
index 908ee2c..4ba0f6f 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.wgsl.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct buf0 {
   vec2 resolution;
 };
@@ -121,41 +122,21 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_6 = main_out(x_GLF_color);
-  return tint_symbol_6;
+  main_out tint_symbol_3 = main_out(x_GLF_color);
+  return tint_symbol_3;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:61: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
-ERROR: 0:61: '' : compilation terminated 
+ERROR: 0:62: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
+ERROR: 0:62: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.spvasm.expected.glsl
index 6c3fdeb..8722064 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct buf1 {
   vec2 injectionSwitch;
 };
@@ -165,41 +166,21 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_6 = main_out(x_GLF_color);
-  return tint_symbol_6;
+  main_out tint_symbol_3 = main_out(x_GLF_color);
+  return tint_symbol_3;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:69: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
-ERROR: 0:69: '' : compilation terminated 
+ERROR: 0:70: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
+ERROR: 0:70: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.wgsl.expected.glsl
index 6c3fdeb..8722064 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.wgsl.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct buf1 {
   vec2 injectionSwitch;
 };
@@ -165,41 +166,21 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_6 = main_out(x_GLF_color);
-  return tint_symbol_6;
+  main_out tint_symbol_3 = main_out(x_GLF_color);
+  return tint_symbol_3;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:69: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
-ERROR: 0:69: '' : compilation terminated 
+ERROR: 0:70: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
+ERROR: 0:70: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/two-for-loops-with-barrier-function/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/two-for-loops-with-barrier-function/0-opt.spvasm.expected.glsl
index d038c4e..5c9dc75 100644
--- a/test/vk-gl-cts/graphicsfuzz/two-for-loops-with-barrier-function/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/two-for-loops-with-barrier-function/0-opt.spvasm.expected.glsl
@@ -69,16 +69,15 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 18, local_size_z = 6) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 18, local_size_z = 6) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:9: '' : array size required 
 ERROR: 0:10: '' : compilation terminated 
diff --git a/test/vk-gl-cts/graphicsfuzz/two-for-loops-with-barrier-function/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/two-for-loops-with-barrier-function/0-opt.wgsl.expected.glsl
index 21e02c0..ca234df 100644
--- a/test/vk-gl-cts/graphicsfuzz/two-for-loops-with-barrier-function/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/two-for-loops-with-barrier-function/0-opt.wgsl.expected.glsl
@@ -73,16 +73,15 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 18, local_size_z = 6) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 18, local_size_z = 6) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:9: '' : array size required 
 ERROR: 0:10: '' : compilation terminated 
diff --git a/test/vk-gl-cts/graphicsfuzz/two-nested-for-loops-with-returns/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/two-nested-for-loops-with-returns/0-opt.spvasm.expected.glsl
index 5600210..db14a35 100644
--- a/test/vk-gl-cts/graphicsfuzz/two-nested-for-loops-with-returns/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/two-nested-for-loops-with-returns/0-opt.spvasm.expected.glsl
@@ -58,16 +58,15 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : array size required 
 ERROR: 0:6: '' : compilation terminated 
diff --git a/test/vk-gl-cts/graphicsfuzz/two-nested-for-loops-with-returns/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/two-nested-for-loops-with-returns/0-opt.wgsl.expected.glsl
index a5d62b9..e78effd 100644
--- a/test/vk-gl-cts/graphicsfuzz/two-nested-for-loops-with-returns/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/two-nested-for-loops-with-returns/0-opt.wgsl.expected.glsl
@@ -62,16 +62,15 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : array size required 
 ERROR: 0:6: '' : compilation terminated 
diff --git a/test/vk-gl-cts/graphicsfuzz/unreachable-barrier-in-loops/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/unreachable-barrier-in-loops/0-opt.spvasm.expected.glsl
index 4479bef..b9afdab 100644
--- a/test/vk-gl-cts/graphicsfuzz/unreachable-barrier-in-loops/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/unreachable-barrier-in-loops/0-opt.spvasm.expected.glsl
@@ -114,28 +114,16 @@
   return;
 }
 
-struct tint_symbol_4 {
-  uvec3 tint_symbol_2;
-};
-
-void tint_symbol_1_inner(uvec3 tint_symbol_2) {
+void tint_symbol_1(uvec3 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
+void main() {
+  tint_symbol_1(gl_GlobalInvocationID);
   return;
 }
-
-
-void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_GlobalInvocationID;
-  tint_symbol_1(inputs);
-}
-
 Error parsing GLSL shader:
 ERROR: 0:13: '' : array size required 
 ERROR: 0:14: '' : compilation terminated 
diff --git a/test/vk-gl-cts/graphicsfuzz/unreachable-barrier-in-loops/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/unreachable-barrier-in-loops/0-opt.wgsl.expected.glsl
index e1a3cee..f741d59 100644
--- a/test/vk-gl-cts/graphicsfuzz/unreachable-barrier-in-loops/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/unreachable-barrier-in-loops/0-opt.wgsl.expected.glsl
@@ -118,28 +118,16 @@
   return;
 }
 
-struct tint_symbol_4 {
-  uvec3 tint_symbol_2;
-};
-
-void tint_symbol_1_inner(uvec3 tint_symbol_2) {
+void tint_symbol_1(uvec3 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
+void main() {
+  tint_symbol_1(gl_GlobalInvocationID);
   return;
 }
-
-
-void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_GlobalInvocationID;
-  tint_symbol_1(inputs);
-}
-
 Error parsing GLSL shader:
 ERROR: 0:13: '' : array size required 
 ERROR: 0:14: '' : compilation terminated 
diff --git a/test/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.spvasm.expected.glsl
index 69805a7..2d39782 100644
--- a/test/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct buf0 {
   int injected;
 };
@@ -73,33 +74,20 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:56: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
-ERROR: 0:56: '' : compilation terminated 
+ERROR: 0:57: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
+ERROR: 0:57: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.spvasm.expected.glsl
index 3f193c3..62a404d 100644
--- a/test/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 struct BST {
   int data;
   int leftIndex;
@@ -346,41 +347,21 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_6 = main_out(x_GLF_color);
-  return tint_symbol_6;
+  main_out tint_symbol_3 = main_out(x_GLF_color);
+  return tint_symbol_3;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:87: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
-ERROR: 0:87: '' : compilation terminated 
+ERROR: 0:88: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
+ERROR: 0:88: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/write-red-in-loop-nest/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/write-red-in-loop-nest/0-opt.spvasm.expected.glsl
index 6a5e24a..5a83706 100644
--- a/test/vk-gl-cts/graphicsfuzz/write-red-in-loop-nest/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/write-red-in-loop-nest/0-opt.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out vec4 x_GLF_color_1_1;
 vec4 x_GLF_color = vec4(0.0f, 0.0f, 0.0f, 0.0f);
 void main_1() {
   mat4x3 m43 = mat4x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
@@ -62,33 +63,20 @@
   vec4 x_GLF_color_1;
 };
 
-struct tint_symbol_1 {
-  vec4 x_GLF_color_1;
-};
-
-main_out tint_symbol_inner() {
+main_out tint_symbol() {
   main_1();
-  main_out tint_symbol_2 = main_out(x_GLF_color);
-  return tint_symbol_2;
+  main_out tint_symbol_1 = main_out(x_GLF_color);
+  return tint_symbol_1;
 }
 
-tint_symbol_1 tint_symbol() {
-  main_out inner_result = tint_symbol_inner();
-  tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
-  return wrapper_result;
-}
-layout(location = 0) out vec4 x_GLF_color_1;
-
 void main() {
-  tint_symbol_1 outputs;
-  outputs = tint_symbol();
-  x_GLF_color_1 = outputs.x_GLF_color_1;
+  main_out inner_result = tint_symbol();
+  x_GLF_color_1_1 = inner_result.x_GLF_color_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:45: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
-ERROR: 0:45: '' : compilation terminated 
+ERROR: 0:46: '&' :  wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
+ERROR: 0:46: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/arraylength/array-stride-larger-than-element-size/1.spvasm.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/compute/arraylength/array-stride-larger-than-element-size/1.spvasm.expected.glsl
index 7b9fd6b..e2366a2 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/arraylength/array-stride-larger-than-element-size/1.spvasm.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/arraylength/array-stride-larger-than-element-size/1.spvasm.expected.glsl
@@ -32,16 +32,15 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:9: '' : array size required 
 ERROR: 0:10: '' : compilation terminated 
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/arraylength/array-stride-larger-than-element-size/1.wgsl.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/compute/arraylength/array-stride-larger-than-element-size/1.wgsl.expected.glsl
index 6524557..a213db5 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/arraylength/array-stride-larger-than-element-size/1.wgsl.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/arraylength/array-stride-larger-than-element-size/1.wgsl.expected.glsl
@@ -36,16 +36,15 @@
   return;
 }
 
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void tint_symbol() {
   main_1();
-  return;
 }
 
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 void main() {
   tint_symbol();
+  return;
 }
-
 Error parsing GLSL shader:
 ERROR: 0:9: '' : array size required 
 ERROR: 0:10: '' : compilation terminated 
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthan/0.spvasm.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthan/0.spvasm.expected.glsl
index ad6293e..d9d2c64 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthan/0.spvasm.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthan/0.spvasm.expected.glsl
@@ -25,28 +25,16 @@
   return;
 }
 
-struct tint_symbol_2 {
-  uvec3 x_2_param;
-};
-
-void tint_symbol_inner(uvec3 x_2_param) {
+void tint_symbol(uvec3 x_2_param) {
   x_2 = x_2_param;
   main_1();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.x_2_param);
+void main() {
+  tint_symbol(gl_GlobalInvocationID);
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.x_2_param = gl_GlobalInvocationID;
-  tint_symbol(inputs);
-}
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : array size required 
 ERROR: 0:6: '' : compilation terminated 
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthan/0.wgsl.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthan/0.wgsl.expected.glsl
index a2e99df..68344d4 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthan/0.wgsl.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthan/0.wgsl.expected.glsl
@@ -29,28 +29,16 @@
   return;
 }
 
-struct tint_symbol_2 {
-  uvec3 x_2_param;
-};
-
-void tint_symbol_inner(uvec3 x_2_param) {
+void tint_symbol(uvec3 x_2_param) {
   x_2 = x_2_param;
   main_1();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.x_2_param);
+void main() {
+  tint_symbol(gl_GlobalInvocationID);
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.x_2_param = gl_GlobalInvocationID;
-  tint_symbol(inputs);
-}
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : array size required 
 ERROR: 0:6: '' : compilation terminated 
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthanequal/0.spvasm.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthanequal/0.spvasm.expected.glsl
index d1c0197..9fde01f 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthanequal/0.spvasm.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthanequal/0.spvasm.expected.glsl
@@ -25,28 +25,16 @@
   return;
 }
 
-struct tint_symbol_2 {
-  uvec3 x_2_param;
-};
-
-void tint_symbol_inner(uvec3 x_2_param) {
+void tint_symbol(uvec3 x_2_param) {
   x_2 = x_2_param;
   main_1();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.x_2_param);
+void main() {
+  tint_symbol(gl_GlobalInvocationID);
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.x_2_param = gl_GlobalInvocationID;
-  tint_symbol(inputs);
-}
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : array size required 
 ERROR: 0:6: '' : compilation terminated 
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthanequal/0.wgsl.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthanequal/0.wgsl.expected.glsl
index 7c584e0..926a4eb 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthanequal/0.wgsl.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthanequal/0.wgsl.expected.glsl
@@ -29,28 +29,16 @@
   return;
 }
 
-struct tint_symbol_2 {
-  uvec3 x_2_param;
-};
-
-void tint_symbol_inner(uvec3 x_2_param) {
+void tint_symbol(uvec3 x_2_param) {
   x_2 = x_2_param;
   main_1();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.x_2_param);
+void main() {
+  tint_symbol(gl_GlobalInvocationID);
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.x_2_param = gl_GlobalInvocationID;
-  tint_symbol(inputs);
-}
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : array size required 
 ERROR: 0:6: '' : compilation terminated 
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthan/0.spvasm.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthan/0.spvasm.expected.glsl
index 422e6c1..13404d0 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthan/0.spvasm.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthan/0.spvasm.expected.glsl
@@ -25,28 +25,16 @@
   return;
 }
 
-struct tint_symbol_2 {
-  uvec3 x_2_param;
-};
-
-void tint_symbol_inner(uvec3 x_2_param) {
+void tint_symbol(uvec3 x_2_param) {
   x_2 = x_2_param;
   main_1();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.x_2_param);
+void main() {
+  tint_symbol(gl_GlobalInvocationID);
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.x_2_param = gl_GlobalInvocationID;
-  tint_symbol(inputs);
-}
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : array size required 
 ERROR: 0:6: '' : compilation terminated 
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthan/0.wgsl.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthan/0.wgsl.expected.glsl
index 12d5533..84ad124 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthan/0.wgsl.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthan/0.wgsl.expected.glsl
@@ -29,28 +29,16 @@
   return;
 }
 
-struct tint_symbol_2 {
-  uvec3 x_2_param;
-};
-
-void tint_symbol_inner(uvec3 x_2_param) {
+void tint_symbol(uvec3 x_2_param) {
   x_2 = x_2_param;
   main_1();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.x_2_param);
+void main() {
+  tint_symbol(gl_GlobalInvocationID);
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.x_2_param = gl_GlobalInvocationID;
-  tint_symbol(inputs);
-}
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : array size required 
 ERROR: 0:6: '' : compilation terminated 
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthanequal/0.spvasm.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthanequal/0.spvasm.expected.glsl
index 7791197..18b1f2a 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthanequal/0.spvasm.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthanequal/0.spvasm.expected.glsl
@@ -25,28 +25,16 @@
   return;
 }
 
-struct tint_symbol_2 {
-  uvec3 x_2_param;
-};
-
-void tint_symbol_inner(uvec3 x_2_param) {
+void tint_symbol(uvec3 x_2_param) {
   x_2 = x_2_param;
   main_1();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.x_2_param);
+void main() {
+  tint_symbol(gl_GlobalInvocationID);
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.x_2_param = gl_GlobalInvocationID;
-  tint_symbol(inputs);
-}
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : array size required 
 ERROR: 0:6: '' : compilation terminated 
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthanequal/0.wgsl.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthanequal/0.wgsl.expected.glsl
index 2ebdf5b..5874bf2 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthanequal/0.wgsl.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthanequal/0.wgsl.expected.glsl
@@ -29,28 +29,16 @@
   return;
 }
 
-struct tint_symbol_2 {
-  uvec3 x_2_param;
-};
-
-void tint_symbol_inner(uvec3 x_2_param) {
+void tint_symbol(uvec3 x_2_param) {
   x_2 = x_2_param;
   main_1();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.x_2_param);
+void main() {
+  tint_symbol(gl_GlobalInvocationID);
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.x_2_param = gl_GlobalInvocationID;
-  tint_symbol(inputs);
-}
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : array size required 
 ERROR: 0:6: '' : compilation terminated 
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_int_uclamp/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_int_uclamp/0-opt.spvasm.expected.glsl
index 0167827..251a504 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_int_uclamp/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_int_uclamp/0-opt.spvasm.expected.glsl
@@ -29,28 +29,16 @@
   return;
 }
 
-struct tint_symbol_2 {
-  uvec3 x_3_param;
-};
-
-void tint_symbol_inner(uvec3 x_3_param) {
+void tint_symbol(uvec3 x_3_param) {
   x_3 = x_3_param;
   main_1();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.x_3_param);
+void main() {
+  tint_symbol(gl_GlobalInvocationID);
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.x_3_param = gl_GlobalInvocationID;
-  tint_symbol(inputs);
-}
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : array size required 
 ERROR: 0:6: '' : compilation terminated 
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_int_uclamp/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_int_uclamp/0-opt.wgsl.expected.glsl
index 2a69831..a47b09b 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_int_uclamp/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_int_uclamp/0-opt.wgsl.expected.glsl
@@ -33,28 +33,16 @@
   return;
 }
 
-struct tint_symbol_2 {
-  uvec3 x_3_param;
-};
-
-void tint_symbol_inner(uvec3 x_3_param) {
+void tint_symbol(uvec3 x_3_param) {
   x_3 = x_3_param;
   main_1();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.x_3_param);
+void main() {
+  tint_symbol(gl_GlobalInvocationID);
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.x_3_param = gl_GlobalInvocationID;
-  tint_symbol(inputs);
-}
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : array size required 
 ERROR: 0:6: '' : compilation terminated 
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sabs/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sabs/0-opt.spvasm.expected.glsl
index 60f5ad6..c98c63f 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sabs/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sabs/0-opt.spvasm.expected.glsl
@@ -21,28 +21,16 @@
   return;
 }
 
-struct tint_symbol_2 {
-  uvec3 x_3_param;
-};
-
-void tint_symbol_inner(uvec3 x_3_param) {
+void tint_symbol(uvec3 x_3_param) {
   x_3 = x_3_param;
   main_1();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.x_3_param);
+void main() {
+  tint_symbol(gl_GlobalInvocationID);
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.x_3_param = gl_GlobalInvocationID;
-  tint_symbol(inputs);
-}
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : array size required 
 ERROR: 0:6: '' : compilation terminated 
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sabs/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sabs/0-opt.wgsl.expected.glsl
index 74c1e3a..e0845f7 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sabs/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sabs/0-opt.wgsl.expected.glsl
@@ -25,28 +25,16 @@
   return;
 }
 
-struct tint_symbol_2 {
-  uvec3 x_3_param;
-};
-
-void tint_symbol_inner(uvec3 x_3_param) {
+void tint_symbol(uvec3 x_3_param) {
   x_3 = x_3_param;
   main_1();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.x_3_param);
+void main() {
+  tint_symbol(gl_GlobalInvocationID);
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.x_3_param = gl_GlobalInvocationID;
-  tint_symbol(inputs);
-}
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : array size required 
 ERROR: 0:6: '' : compilation terminated 
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sclamp/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sclamp/0-opt.spvasm.expected.glsl
index daadbfb..cd581c8 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sclamp/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sclamp/0-opt.spvasm.expected.glsl
@@ -29,28 +29,16 @@
   return;
 }
 
-struct tint_symbol_2 {
-  uvec3 x_3_param;
-};
-
-void tint_symbol_inner(uvec3 x_3_param) {
+void tint_symbol(uvec3 x_3_param) {
   x_3 = x_3_param;
   main_1();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.x_3_param);
+void main() {
+  tint_symbol(gl_GlobalInvocationID);
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.x_3_param = gl_GlobalInvocationID;
-  tint_symbol(inputs);
-}
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : array size required 
 ERROR: 0:6: '' : compilation terminated 
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sclamp/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sclamp/0-opt.wgsl.expected.glsl
index 44485c9..e156568 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sclamp/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sclamp/0-opt.wgsl.expected.glsl
@@ -33,28 +33,16 @@
   return;
 }
 
-struct tint_symbol_2 {
-  uvec3 x_3_param;
-};
-
-void tint_symbol_inner(uvec3 x_3_param) {
+void tint_symbol(uvec3 x_3_param) {
   x_3 = x_3_param;
   main_1();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.x_3_param);
+void main() {
+  tint_symbol(gl_GlobalInvocationID);
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.x_3_param = gl_GlobalInvocationID;
-  tint_symbol(inputs);
-}
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : array size required 
 ERROR: 0:6: '' : compilation terminated 
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smax/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smax/0-opt.spvasm.expected.glsl
index ab97231..52e29ed 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smax/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smax/0-opt.spvasm.expected.glsl
@@ -25,28 +25,16 @@
   return;
 }
 
-struct tint_symbol_2 {
-  uvec3 x_3_param;
-};
-
-void tint_symbol_inner(uvec3 x_3_param) {
+void tint_symbol(uvec3 x_3_param) {
   x_3 = x_3_param;
   main_1();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.x_3_param);
+void main() {
+  tint_symbol(gl_GlobalInvocationID);
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.x_3_param = gl_GlobalInvocationID;
-  tint_symbol(inputs);
-}
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : array size required 
 ERROR: 0:6: '' : compilation terminated 
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smax/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smax/0-opt.wgsl.expected.glsl
index faef533..16cdc9c 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smax/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smax/0-opt.wgsl.expected.glsl
@@ -29,28 +29,16 @@
   return;
 }
 
-struct tint_symbol_2 {
-  uvec3 x_3_param;
-};
-
-void tint_symbol_inner(uvec3 x_3_param) {
+void tint_symbol(uvec3 x_3_param) {
   x_3 = x_3_param;
   main_1();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.x_3_param);
+void main() {
+  tint_symbol(gl_GlobalInvocationID);
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.x_3_param = gl_GlobalInvocationID;
-  tint_symbol(inputs);
-}
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : array size required 
 ERROR: 0:6: '' : compilation terminated 
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smin/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smin/0-opt.spvasm.expected.glsl
index 80abfcf..57bf5a7 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smin/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smin/0-opt.spvasm.expected.glsl
@@ -25,28 +25,16 @@
   return;
 }
 
-struct tint_symbol_2 {
-  uvec3 x_3_param;
-};
-
-void tint_symbol_inner(uvec3 x_3_param) {
+void tint_symbol(uvec3 x_3_param) {
   x_3 = x_3_param;
   main_1();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.x_3_param);
+void main() {
+  tint_symbol(gl_GlobalInvocationID);
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.x_3_param = gl_GlobalInvocationID;
-  tint_symbol(inputs);
-}
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : array size required 
 ERROR: 0:6: '' : compilation terminated 
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smin/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smin/0-opt.wgsl.expected.glsl
index 09b6341..40efa37 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smin/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smin/0-opt.wgsl.expected.glsl
@@ -29,28 +29,16 @@
   return;
 }
 
-struct tint_symbol_2 {
-  uvec3 x_3_param;
-};
-
-void tint_symbol_inner(uvec3 x_3_param) {
+void tint_symbol(uvec3 x_3_param) {
   x_3 = x_3_param;
   main_1();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.x_3_param);
+void main() {
+  tint_symbol(gl_GlobalInvocationID);
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.x_3_param = gl_GlobalInvocationID;
-  tint_symbol(inputs);
-}
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : array size required 
 ERROR: 0:6: '' : compilation terminated 
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_sdiv/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_sdiv/0-opt.spvasm.expected.glsl
index 74afb3c..da8852d 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_sdiv/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_sdiv/0-opt.spvasm.expected.glsl
@@ -25,28 +25,16 @@
   return;
 }
 
-struct tint_symbol_2 {
-  uvec3 x_2_param;
-};
-
-void tint_symbol_inner(uvec3 x_2_param) {
+void tint_symbol(uvec3 x_2_param) {
   x_2 = x_2_param;
   main_1();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.x_2_param);
+void main() {
+  tint_symbol(gl_GlobalInvocationID);
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.x_2_param = gl_GlobalInvocationID;
-  tint_symbol(inputs);
-}
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : array size required 
 ERROR: 0:6: '' : compilation terminated 
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_sdiv/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_sdiv/0-opt.wgsl.expected.glsl
index 9db4599..ad5194b 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_sdiv/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_sdiv/0-opt.wgsl.expected.glsl
@@ -29,28 +29,16 @@
   return;
 }
 
-struct tint_symbol_2 {
-  uvec3 x_2_param;
-};
-
-void tint_symbol_inner(uvec3 x_2_param) {
+void tint_symbol(uvec3 x_2_param) {
   x_2 = x_2_param;
   main_1();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.x_2_param);
+void main() {
+  tint_symbol(gl_GlobalInvocationID);
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.x_2_param = gl_GlobalInvocationID;
-  tint_symbol(inputs);
-}
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : array size required 
 ERROR: 0:6: '' : compilation terminated 
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_snegate/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_snegate/0-opt.spvasm.expected.glsl
index 09af254..6b2368e 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_snegate/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_snegate/0-opt.spvasm.expected.glsl
@@ -21,28 +21,16 @@
   return;
 }
 
-struct tint_symbol_2 {
-  uvec3 x_2_param;
-};
-
-void tint_symbol_inner(uvec3 x_2_param) {
+void tint_symbol(uvec3 x_2_param) {
   x_2 = x_2_param;
   main_1();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.x_2_param);
+void main() {
+  tint_symbol(gl_GlobalInvocationID);
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.x_2_param = gl_GlobalInvocationID;
-  tint_symbol(inputs);
-}
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : array size required 
 ERROR: 0:6: '' : compilation terminated 
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_snegate/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_snegate/0-opt.wgsl.expected.glsl
index 5784b16..6cb02de 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_snegate/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_snegate/0-opt.wgsl.expected.glsl
@@ -25,28 +25,16 @@
   return;
 }
 
-struct tint_symbol_2 {
-  uvec3 x_2_param;
-};
-
-void tint_symbol_inner(uvec3 x_2_param) {
+void tint_symbol(uvec3 x_2_param) {
   x_2 = x_2_param;
   main_1();
 }
 
 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void tint_symbol(tint_symbol_2 tint_symbol_1) {
-  tint_symbol_inner(tint_symbol_1.x_2_param);
+void main() {
+  tint_symbol(gl_GlobalInvocationID);
   return;
 }
-
-
-void main() {
-  tint_symbol_2 inputs;
-  inputs.x_2_param = gl_GlobalInvocationID;
-  tint_symbol(inputs);
-}
-
 Error parsing GLSL shader:
 ERROR: 0:5: '' : array size required 
 ERROR: 0:6: '' : compilation terminated 
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_atomic/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_atomic/0-opt.spvasm.expected.glsl
new file mode 100644
index 0000000..31a1292
--- /dev/null
+++ b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_atomic/0-opt.spvasm.expected.glsl
@@ -0,0 +1,46 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+layout(location = 0) in vec3 x_2_param_1;
+layout(location = 1) flat in int x_3_param_1;
+layout(location = 0) flat out int x_4_1_1;
+vec3 x_2 = vec3(0.0f, 0.0f, 0.0f);
+int x_3 = 0;
+int x_4 = 0;
+vec4 tint_symbol = vec4(0.0f, 0.0f, 0.0f, 0.0f);
+void main_1() {
+  tint_symbol = vec4(x_2, 1.0f);
+  x_4 = x_3;
+  return;
+}
+
+struct main_out {
+  int x_4_1;
+  vec4 tint_symbol;
+};
+
+main_out tint_symbol_1(vec3 x_2_param, int x_3_param) {
+  x_2 = x_2_param;
+  x_3 = x_3_param;
+  main_1();
+  main_out tint_symbol_2 = main_out(x_4, tint_symbol);
+  return tint_symbol_2;
+}
+
+void main() {
+  main_out inner_result = tint_symbol_1(x_2_param_1, x_3_param_1);
+  x_4_1_1 = inner_result.x_4_1;
+  gl_Position = inner_result.tint_symbol;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:5: '' : vertex input cannot be further qualified 
+ERROR: 0:5: '' : compilation terminated 
+ERROR: 2 compilation errors.  No code generated.
+
+
+
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/2-opt.spvasm.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/2-opt.spvasm.expected.glsl
index cda39d2..ff8ea5c 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/2-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/2-opt.spvasm.expected.glsl
@@ -3,6 +3,7 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) out int out_data_1_1;
 vec4 tint_symbol = vec4(0.0f, 0.0f, 0.0f, 0.0f);
 int out_data = 0;
 void main_1() {
@@ -20,41 +21,21 @@
   int out_data_1;
 };
 
-struct tint_symbol_4 {
-  vec4 tint_symbol_2;
-};
-
-struct tint_symbol_5 {
-  int out_data_1;
-};
-
-main_out tint_symbol_1_inner(vec4 tint_symbol_2) {
+main_out tint_symbol_1(vec4 tint_symbol_2) {
   tint_symbol = tint_symbol_2;
   main_1();
-  main_out tint_symbol_6 = main_out(out_data);
-  return tint_symbol_6;
+  main_out tint_symbol_3 = main_out(out_data);
+  return tint_symbol_3;
 }
 
-tint_symbol_5 tint_symbol_1(tint_symbol_4 tint_symbol_3) {
-  main_out inner_result = tint_symbol_1_inner(tint_symbol_3.tint_symbol_2);
-  tint_symbol_5 wrapper_result = tint_symbol_5(0);
-  wrapper_result.out_data_1 = inner_result.out_data_1;
-  return wrapper_result;
-}
-
-layout(location = 0) out int out_data_1;
-
 void main() {
-  tint_symbol_4 inputs;
-  inputs.tint_symbol_2 = gl_FragCoord;
-  tint_symbol_5 outputs;
-  outputs = tint_symbol_1(inputs);
-  out_data_1 = outputs.out_data_1;
+  main_out inner_result = tint_symbol_1(gl_FragCoord);
+  out_data_1_1 = inner_result.out_data_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:13: '|' :  wrong operand types: no operation '|' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
-ERROR: 0:13: '' : compilation terminated 
+ERROR: 0:14: '|' :  wrong operand types: no operation '|' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
+ERROR: 0:14: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_ssbo_store/1.spvasm.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_ssbo_store/1.spvasm.expected.glsl
index fe71638..14953d8 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_ssbo_store/1.spvasm.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_ssbo_store/1.spvasm.expected.glsl
@@ -3,6 +3,8 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) flat in int x_3_param_1;
+layout(location = 0) out int x_4_1_1;
 struct S {
   int field0[];
 };
@@ -28,45 +30,22 @@
   int x_4_1;
 };
 
-struct tint_symbol_2 {
-  int x_3_param;
-  vec4 x_2_param;
-};
-
-struct tint_symbol_3 {
-  int x_4_1;
-};
-
-main_out tint_symbol_inner(vec4 x_2_param, int x_3_param) {
+main_out tint_symbol(vec4 x_2_param, int x_3_param) {
   x_2 = x_2_param;
   x_3 = x_3_param;
   main_1();
-  main_out tint_symbol_4 = main_out(x_4);
-  return tint_symbol_4;
+  main_out tint_symbol_1 = main_out(x_4);
+  return tint_symbol_1;
 }
 
-tint_symbol_3 tint_symbol(tint_symbol_2 tint_symbol_1) {
-  main_out inner_result = tint_symbol_inner(tint_symbol_1.x_2_param, tint_symbol_1.x_3_param);
-  tint_symbol_3 wrapper_result = tint_symbol_3(0);
-  wrapper_result.x_4_1 = inner_result.x_4_1;
-  return wrapper_result;
-}
-layout(location = 0) flat in int x_3_param;
-
-layout(location = 0) out int x_4_1;
-
 void main() {
-  tint_symbol_2 inputs;
-  inputs.x_3_param = x_3_param;
-  inputs.x_2_param = gl_FragCoord;
-  tint_symbol_3 outputs;
-  outputs = tint_symbol(inputs);
-  x_4_1 = outputs.x_4_1;
+  main_out inner_result = tint_symbol(gl_FragCoord, x_3_param_1);
+  x_4_1_1 = inner_result.x_4_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:5: '' : array size required 
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:7: '' : array size required 
+ERROR: 0:8: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_ssbo_store/1.wgsl.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_ssbo_store/1.wgsl.expected.glsl
index 7b5ffa5..b523e0d 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_ssbo_store/1.wgsl.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_ssbo_store/1.wgsl.expected.glsl
@@ -7,6 +7,8 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) flat in int x_3_param_1;
+layout(location = 0) out int x_4_1_1;
 struct S {
   int field0[];
 };
@@ -32,45 +34,22 @@
   int x_4_1;
 };
 
-struct tint_symbol_2 {
-  int x_3_param;
-  vec4 x_2_param;
-};
-
-struct tint_symbol_3 {
-  int x_4_1;
-};
-
-main_out tint_symbol_inner(vec4 x_2_param, int x_3_param) {
+main_out tint_symbol(vec4 x_2_param, int x_3_param) {
   x_2 = x_2_param;
   x_3 = x_3_param;
   main_1();
-  main_out tint_symbol_4 = main_out(x_4);
-  return tint_symbol_4;
+  main_out tint_symbol_1 = main_out(x_4);
+  return tint_symbol_1;
 }
 
-tint_symbol_3 tint_symbol(tint_symbol_2 tint_symbol_1) {
-  main_out inner_result = tint_symbol_inner(tint_symbol_1.x_2_param, tint_symbol_1.x_3_param);
-  tint_symbol_3 wrapper_result = tint_symbol_3(0);
-  wrapper_result.x_4_1 = inner_result.x_4_1;
-  return wrapper_result;
-}
-layout(location = 0) flat in int x_3_param;
-
-layout(location = 0) out int x_4_1;
-
 void main() {
-  tint_symbol_2 inputs;
-  inputs.x_3_param = x_3_param;
-  inputs.x_2_param = gl_FragCoord;
-  tint_symbol_3 outputs;
-  outputs = tint_symbol(inputs);
-  x_4_1 = outputs.x_4_1;
+  main_out inner_result = tint_symbol(gl_FragCoord, x_3_param_1);
+  x_4_1_1 = inner_result.x_4_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:5: '' : array size required 
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:7: '' : array size required 
+ERROR: 0:8: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/ssbo_store_before_terminate/1.spvasm.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/ssbo_store_before_terminate/1.spvasm.expected.glsl
index 82201ad..46fb7d6 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/ssbo_store_before_terminate/1.spvasm.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/ssbo_store_before_terminate/1.spvasm.expected.glsl
@@ -3,6 +3,8 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) flat in int x_3_param_1;
+layout(location = 0) out int x_4_1_1;
 struct S {
   int field0[];
 };
@@ -29,45 +31,22 @@
   int x_4_1;
 };
 
-struct tint_symbol_2 {
-  int x_3_param;
-  vec4 x_2_param;
-};
-
-struct tint_symbol_3 {
-  int x_4_1;
-};
-
-main_out tint_symbol_inner(vec4 x_2_param, int x_3_param) {
+main_out tint_symbol(vec4 x_2_param, int x_3_param) {
   x_2 = x_2_param;
   x_3 = x_3_param;
   main_1();
-  main_out tint_symbol_4 = main_out(x_4);
-  return tint_symbol_4;
+  main_out tint_symbol_1 = main_out(x_4);
+  return tint_symbol_1;
 }
 
-tint_symbol_3 tint_symbol(tint_symbol_2 tint_symbol_1) {
-  main_out inner_result = tint_symbol_inner(tint_symbol_1.x_2_param, tint_symbol_1.x_3_param);
-  tint_symbol_3 wrapper_result = tint_symbol_3(0);
-  wrapper_result.x_4_1 = inner_result.x_4_1;
-  return wrapper_result;
-}
-layout(location = 0) flat in int x_3_param;
-
-layout(location = 0) out int x_4_1;
-
 void main() {
-  tint_symbol_2 inputs;
-  inputs.x_3_param = x_3_param;
-  inputs.x_2_param = gl_FragCoord;
-  tint_symbol_3 outputs;
-  outputs = tint_symbol(inputs);
-  x_4_1 = outputs.x_4_1;
+  main_out inner_result = tint_symbol(gl_FragCoord, x_3_param_1);
+  x_4_1_1 = inner_result.x_4_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:5: '' : array size required 
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:7: '' : array size required 
+ERROR: 0:8: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/ssbo_store_before_terminate/1.wgsl.expected.glsl b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/ssbo_store_before_terminate/1.wgsl.expected.glsl
index e196f12..e357ce5 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/ssbo_store_before_terminate/1.wgsl.expected.glsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/ssbo_store_before_terminate/1.wgsl.expected.glsl
@@ -7,6 +7,8 @@
 #version 310 es
 precision mediump float;
 
+layout(location = 0) flat in int x_3_param_1;
+layout(location = 0) out int x_4_1_1;
 struct S {
   int field0[];
 };
@@ -33,45 +35,22 @@
   int x_4_1;
 };
 
-struct tint_symbol_2 {
-  int x_3_param;
-  vec4 x_2_param;
-};
-
-struct tint_symbol_3 {
-  int x_4_1;
-};
-
-main_out tint_symbol_inner(vec4 x_2_param, int x_3_param) {
+main_out tint_symbol(vec4 x_2_param, int x_3_param) {
   x_2 = x_2_param;
   x_3 = x_3_param;
   main_1();
-  main_out tint_symbol_4 = main_out(x_4);
-  return tint_symbol_4;
+  main_out tint_symbol_1 = main_out(x_4);
+  return tint_symbol_1;
 }
 
-tint_symbol_3 tint_symbol(tint_symbol_2 tint_symbol_1) {
-  main_out inner_result = tint_symbol_inner(tint_symbol_1.x_2_param, tint_symbol_1.x_3_param);
-  tint_symbol_3 wrapper_result = tint_symbol_3(0);
-  wrapper_result.x_4_1 = inner_result.x_4_1;
-  return wrapper_result;
-}
-layout(location = 0) flat in int x_3_param;
-
-layout(location = 0) out int x_4_1;
-
 void main() {
-  tint_symbol_2 inputs;
-  inputs.x_3_param = x_3_param;
-  inputs.x_2_param = gl_FragCoord;
-  tint_symbol_3 outputs;
-  outputs = tint_symbol(inputs);
-  x_4_1 = outputs.x_4_1;
+  main_out inner_result = tint_symbol(gl_FragCoord, x_3_param_1);
+  x_4_1_1 = inner_result.x_4_1;
+  return;
 }
-
 Error parsing GLSL shader:
-ERROR: 0:5: '' : array size required 
-ERROR: 0:6: '' : compilation terminated 
+ERROR: 0:7: '' : array size required 
+ERROR: 0:8: '' : compilation terminated 
 ERROR: 2 compilation errors.  No code generated.