#include <metal_stdlib>

using namespace metal;
struct tint_symbol_2 {
  /* 0x0000 */ uint4 buffer_size[1];
};
struct SB_RO {
  /* 0x0000 */ uint arg_0[1];
};
struct tint_symbol {
  float4 value [[position]];
};

void arrayLength_cfca0a(constant tint_symbol_2& tint_symbol_3) {
  uint res = ((tint_symbol_3.buffer_size[0u][1u] - 0u) / 4u);
}

vertex tint_symbol vertex_main(constant tint_symbol_2& tint_symbol_3 [[buffer(30)]]) {
  arrayLength_cfca0a(tint_symbol_3);
  tint_symbol const tint_symbol_1 = {.value=float4()};
  return tint_symbol_1;
}

fragment void fragment_main(constant tint_symbol_2& tint_symbol_3 [[buffer(30)]]) {
  arrayLength_cfca0a(tint_symbol_3);
  return;
}

kernel void compute_main(constant tint_symbol_2& tint_symbol_3 [[buffer(30)]]) {
  arrayLength_cfca0a(tint_symbol_3);
  return;
}

