#include <metal_stdlib>

using namespace metal;
struct tint_symbol_2 {
  int3 x [[user(locn1)]] [[flat]];
};
struct tint_symbol_3 {
  int value [[color(2)]];
};

int f(int x) {
  if ((x == 10)) {
    discard_fragment();
  }
  return x;
}

int tint_symbol_inner(int3 x) {
  int y = x[0];
  while (true) {
    int const r = f(y);
    if ((r == 0)) {
      break;
    }
  }
  return y;
}

fragment tint_symbol_3 tint_symbol(tint_symbol_2 tint_symbol_1 [[stage_in]]) {
  int const inner_result = tint_symbol_inner(tint_symbol_1.x);
  tint_symbol_3 wrapper_result = {};
  wrapper_result.value = inner_result;
  return wrapper_result;
}

