#include <metal_stdlib>

using namespace metal;
void g(float a, float b, float c) {
}

struct tint_symbol_1 {
  float4 fbf [[color(0)]];
  float4 uv [[user(locn0)]];
};

void f_inner(float4 pos, float4 uv, float4 fbf) {
  g(pos[0], uv[0], fbf[0]);
}

fragment void f(float4 pos [[position]], tint_symbol_1 tint_symbol [[stage_in]]) {
  f_inner(pos, tint_symbol.uv, tint_symbol.fbf);
  return;
}

