#include <metal_stdlib>

using namespace metal;
void main_1(texture2d<uint, access::sample> 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[0];
  srcValue[0] = (x_22 + 1u);
  uint4 const x_27 = srcValue;
  tint_symbol_2.write(x_27, uint2(int2(0)));
  return;
}

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

