#include <metal_stdlib>
using namespace metal;

struct In {
  float4 pos;
};

struct f_inputs {
  int4 fbf_2 [[color(2)]];
  float4 uv [[user(locn0)]];
  uint4 fbf_0 [[color(0)]];
};

void g(int a, float b, float c, uint d) {
}

void f_inner(int4 fbf_2, In in, float4 uv, uint4 fbf_0) {
  (g(fbf_2.z, in.pos.x, uv.x, fbf_0.y));
}

fragment void f(f_inputs inputs [[stage_in]], float4 In_pos [[position]]) {
  (f_inner(inputs.fbf_2, In{.pos=In_pos}, inputs.uv, inputs.fbf_0));
}
