#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;
}

