#include <metal_stdlib>

using namespace metal;
uint4 textureLoad_9fa9fd(texture3d<uint, access::read_write> tint_symbol) {
  uint3 arg_1 = uint3(1u);
  uint4 res = tint_symbol.read(uint3(arg_1));
  return res;
}

fragment void fragment_main(device uint4* tint_symbol_1 [[buffer(0)]], texture3d<uint, access::read_write> tint_symbol_2 [[texture(0)]]) {
  *(tint_symbol_1) = textureLoad_9fa9fd(tint_symbol_2);
  return;
}

kernel void compute_main(device uint4* tint_symbol_3 [[buffer(0)]], texture3d<uint, access::read_write> tint_symbol_4 [[texture(0)]]) {
  *(tint_symbol_3) = textureLoad_9fa9fd(tint_symbol_4);
  return;
}

