#include <metal_stdlib>
using namespace metal;
struct tint_module_vars_struct {
  device int* non_uniform_global;
  thread bool* continue_execution;
};

fragment void tint_symbol(device int* non_uniform_global [[buffer(0)]]) {
  thread bool continue_execution = true;
  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.non_uniform_global=non_uniform_global, .continue_execution=(&continue_execution)};
  if (((*tint_module_vars.non_uniform_global) < 0)) {
    (*tint_module_vars.continue_execution) = false;
  }
  if (!((*tint_module_vars.continue_execution))) {
    discard_fragment();
  }
}
