#include <metal_stdlib>
using namespace metal;
struct tint_module_vars_struct {
  texture3d<uint, access::write> arg_0;
};

void textureStore_d4aa95(tint_module_vars_struct tint_module_vars) {
  uint3 arg_1 = uint3(1u);
  uint4 arg_2 = uint4(1u);
  tint_module_vars.arg_0.write(arg_2, arg_1);
}
fragment void fragment_main(texture3d<uint, access::write> arg_0 [[texture(0)]]) {
  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.arg_0=arg_0};
  textureStore_d4aa95(tint_module_vars);
}
kernel void compute_main(texture3d<uint, access::write> arg_0 [[texture(0)]]) {
  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.arg_0=arg_0};
  textureStore_d4aa95(tint_module_vars);
}
