#include <metal_stdlib>

using namespace metal;
half quadBroadcast_cebc6a() {
  half arg_0 = 1.0h;
  half res = quad_broadcast(arg_0,1u);
  return res;
}

fragment void fragment_main(device half* tint_symbol [[buffer(0)]]) {
  *(tint_symbol) = quadBroadcast_cebc6a();
  return;
}

kernel void compute_main(device half* tint_symbol_1 [[buffer(0)]]) {
  *(tint_symbol_1) = quadBroadcast_cebc6a();
  return;
}

