#include <metal_stdlib>

using namespace metal;
int2 subgroupBroadcastFirst_85b351() {
  int2 arg_0 = int2(1);
  int2 res = simd_broadcast_first(arg_0);
  return res;
}

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

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

