warning: use of deprecated intrinsic
#include <metal_stdlib>

using namespace metal;
void main_1(texture2d<uint, access::read> tint_symbol_1, texture2d<uint, access::write> tint_symbol_2) {
  uint4 srcValue = 0u;
  uint4 const x_18 = tint_symbol_1.read(uint2(int2(0, 0)));
  srcValue = x_18;
  uint const x_22 = srcValue.x;
  srcValue.x = (x_22 + as_type<uint>(1));
  uint4 const x_27 = srcValue;
  tint_symbol_2.write(x_27, uint2(int2(0, 0)));
  return;
}

kernel void tint_symbol(texture2d<uint, access::read> tint_symbol_3 [[texture(0)]], texture2d<uint, access::write> tint_symbol_4 [[texture(1)]]) {
  main_1(tint_symbol_3, tint_symbol_4);
  return;
}

