#include <metal_stdlib>

using namespace metal;
struct FragmentInputs {
  int loc0;
  uint loc1;
  float loc2;
  float4 loc3;
  half loc4;
  half3 loc5;
};

struct tint_symbol_2 {
  int loc0 [[user(locn0)]] [[flat]];
  uint loc1 [[user(locn1)]] [[flat]];
  float loc2 [[user(locn2)]];
  float4 loc3 [[user(locn3)]];
  half loc4 [[user(locn4)]];
  half3 loc5 [[user(locn5)]];
};

void tint_symbol_inner(FragmentInputs inputs) {
  int const i = inputs.loc0;
  uint const u = inputs.loc1;
  float const f = inputs.loc2;
  float4 const v = inputs.loc3;
  half const x = inputs.loc4;
  half3 const y = inputs.loc5;
}

fragment void tint_symbol(tint_symbol_2 tint_symbol_1 [[stage_in]]) {
  FragmentInputs const tint_symbol_3 = {.loc0=tint_symbol_1.loc0, .loc1=tint_symbol_1.loc1, .loc2=tint_symbol_1.loc2, .loc3=tint_symbol_1.loc3, .loc4=tint_symbol_1.loc4, .loc5=tint_symbol_1.loc5};
  tint_symbol_inner(tint_symbol_3);
  return;
}

