#include <metal_stdlib>

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

void main_1(device S& x_6, device S& x_7, device S& x_8, device S& x_9, thread uint3* const tint_symbol_2) {
  uint const x_26 = (*(tint_symbol_2)).x;
  int const x_28 = x_6.field0[x_26];
  int const x_30 = x_7.field0[x_26];
  int const x_32 = x_8.field0[x_26];
  x_9.field0[x_26] = as_type<int>(clamp(as_type<uint>(x_28), as_type<uint>(x_30), as_type<uint>(x_32)));
  return;
}

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

