#include <metal_stdlib>

using namespace metal;
uint4 subgroupBroadcast_279027() {
  uint4 arg_0 = uint4(1u);
  uint4 res = simd_broadcast(arg_0,ushort(1u));
  return res;
}

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

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

