#include <metal_stdlib>

using namespace metal;
half4 subgroupMax_33e339() {
  half4 arg_0 = half4(1.0h);
  half4 res = simd_max(arg_0);
  return res;
}

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

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

