#include <metal_stdlib>
using namespace metal;

struct f_inputs {
  float4 a [[user(locn0)]];
  float4 b [[user(locn1)]] [[flat]];
  float4 fbf [[color(0)]];
};

void g(float a, float b, float c) {
}

void f_inner(float4 a, float4 b, float4 fbf) {
  g(a[0u], b[1u], fbf[0u]);
}

fragment void f(f_inputs inputs [[stage_in]]) {
  f_inner(inputs.a, inputs.b, inputs.fbf);
}
