#include <metal_stdlib>
using namespace metal;

struct FragmentOutputs {
  int loc0;
  uint loc1;
  float loc2;
  float4 loc3;
};

struct tint_symbol_outputs {
  int FragmentOutputs_loc0 [[color(0)]];
  uint FragmentOutputs_loc1 [[color(1)]];
  float FragmentOutputs_loc2 [[color(2)]];
  float4 FragmentOutputs_loc3 [[color(3)]];
};

FragmentOutputs tint_symbol_inner() {
  return FragmentOutputs{.loc0=1, .loc1=1u, .loc2=1.0f, .loc3=float4(1.0f, 2.0f, 3.0f, 4.0f)};
}

fragment tint_symbol_outputs tint_symbol() {
  FragmentOutputs const v = tint_symbol_inner();
  return tint_symbol_outputs{.FragmentOutputs_loc0=v.loc0, .FragmentOutputs_loc1=v.loc1, .FragmentOutputs_loc2=v.loc2, .FragmentOutputs_loc3=v.loc3};
}
