#include <metal_stdlib>

using namespace metal;
struct S {
  /* 0x0000 */ uint field0[1];
};

void main_1(device S& x_5, device S& x_6, device S& x_7, thread uint3* const tint_symbol_2) {
  uint const x_21 = (*(tint_symbol_2)).x;
  uint const x_23 = x_5.field0[x_21];
  uint const x_25 = x_6.field0[x_21];
  x_7.field0[x_21] = select(0u, 1u, (as_type<int>(x_23) < as_type<int>(x_25)));
  return;
}

kernel void tint_symbol(uint3 x_2_param [[thread_position_in_grid]], device S& x_5 [[buffer(0)]], device S& x_6 [[buffer(1)]], device S& x_7 [[buffer(2)]]) {
  thread uint3 tint_symbol_3 = 0u;
  tint_symbol_3 = x_2_param;
  main_1(x_5, x_6, x_7, &(tint_symbol_3));
  return;
}

