[[block]]
struct buf0 {
  three : i32;
};

[[group(0), binding(0)]] var<uniform> x_6 : buf0;

var<private> gl_FragCoord : vec4<f32>;

var<private> x_GLF_color : vec4<f32>;

fn main_1() {
  var x_36 : bool;
  var x_37_phi : bool;
  let x_29 : i32 = x_6.three;
  let x_30 : bool = (x_29 > 1);
  x_37_phi = x_30;
  if (x_30) {
    let x_34 : f32 = gl_FragCoord.y;
    x_36 = !((x_34 < -5.0));
    x_37_phi = x_36;
  }
  let x_37 : bool = x_37_phi;
  if (x_37) {
    x_GLF_color = vec4<f32>(1.0, 0.0, 0.0, 1.0);
  } else {
    x_GLF_color = vec4<f32>(0.0, 0.0, 0.0, 0.0);
  }
  return;
}

struct main_out {
  [[location(0)]]
  x_GLF_color_1 : vec4<f32>;
};

[[stage(fragment)]]
fn main([[builtin(position)]] gl_FragCoord_param : vec4<f32>) -> main_out {
  gl_FragCoord = gl_FragCoord_param;
  main_1();
  return main_out(x_GLF_color);
}
