#include <metal_stdlib>

using namespace metal;
void main_1(texture2d_array<float, access::sample> tint_symbol_1) {
  float float_var = 0.0f;
  int const i1 = 1;
  int2 const vi12 = int2(1, 2);
  int3 const vi123 = int3(1, 2, 3);
  int4 const vi1234 = int4(1, 2, 3, 4);
  uint const u1 = 1u;
  uint2 const vu12 = uint2(1u, 2u);
  uint3 const vu123 = uint3(1u, 2u, 3u);
  uint4 const vu1234 = uint4(1u, 2u, 3u, 4u);
  float const f1 = 1.0f;
  float2 const vf12 = float2(1.0f, 2.0f);
  float3 const vf123 = float3(1.0f, 2.0f, 3.0f);
  float4 const vf1234 = float4(1.0f, 2.0f, 3.0f, 4.0f);
  float4 const x_73 = tint_symbol_1.read(uint2(vi123.xy), vi123.z, 0);
  uint const x_1000 = 0u;
  return;
}

fragment void tint_symbol(texture2d_array<float, access::sample> tint_symbol_2 [[texture(1)]]) {
  main_1(tint_symbol_2);
  return;
}

