#include <metal_stdlib>

using namespace metal;
struct tint_symbol_1 {
  float4 value [[position]];
};

struct DeclaredAfterUsage {
  /* 0x0000 */ float f;
};

float4 tint_symbol_inner(const constant DeclaredAfterUsage* const tint_symbol_2) {
  return float4((*(tint_symbol_2)).f);
}

vertex tint_symbol_1 tint_symbol(const constant DeclaredAfterUsage* tint_symbol_3 [[buffer(0)]]) {
  float4 const inner_result = tint_symbol_inner(tint_symbol_3);
  tint_symbol_1 wrapper_result = {};
  wrapper_result.value = inner_result;
  return wrapper_result;
}

