#include <metal_stdlib>

using namespace metal;
void textureStore_d86d33(texture2d_array<float, access::read_write> tint_symbol) {
  uint2 arg_1 = uint2(1u);
  int arg_2 = 1;
  float4 arg_3 = float4(1.0f);
  tint_symbol.write(arg_3, uint2(arg_1), arg_2); tint_symbol.fence();
}

fragment void fragment_main(texture2d_array<float, access::read_write> tint_symbol_1 [[texture(0)]]) {
  textureStore_d86d33(tint_symbol_1);
  return;
}

kernel void compute_main(texture2d_array<float, access::read_write> tint_symbol_2 [[texture(0)]]) {
  textureStore_d86d33(tint_symbol_2);
  return;
}

