#include <metal_stdlib>

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

void ceil_96f597() {
  float2 res =   ceil(float2());
}

vertex tint_symbol vertex_main() {
  ceil_96f597();
  tint_symbol const tint_symbol_1 = {.value=float4()};
  return tint_symbol_1;
}

fragment void fragment_main() {
  ceil_96f597();
  return;
}

kernel void compute_main() {
  ceil_96f597();
  return;
}

