#include <metal_stdlib>

using namespace metal;
void textureSampleCompare_7b5025(depth2d_array<float, access::sample> tint_symbol, sampler tint_symbol_1) {
  float2 arg_2 = float2(1.0f);
  uint arg_3 = 1u;
  float arg_4 = 1.0f;
  float res = tint_symbol.sample_compare(tint_symbol_1, arg_2, arg_3, arg_4, int2(1));
}

fragment void fragment_main(depth2d_array<float, access::sample> tint_symbol_2 [[texture(0)]], sampler tint_symbol_3 [[sampler(0)]]) {
  textureSampleCompare_7b5025(tint_symbol_2, tint_symbol_3);
  return;
}

