#include <metal_stdlib>

using namespace metal;
void main_1(depth2d_array<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
  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);
  float const x_73 = tint_symbol_1.sample_compare(tint_symbol_2, vf123.xy, int(vf123.z), 0.200000003f);
  uint const x_1000 = 0u;
  return;
}

fragment void tint_symbol(depth2d_array<float, access::sample> tint_symbol_3 [[texture(0)]], sampler tint_symbol_4 [[sampler(0)]]) {
  main_1(tint_symbol_3, tint_symbol_4);
  return;
}

