var<private> gl_FragCoord : vec4<f32>;

var<private> out_data : i32;

fn main_1() {
  var x_is_odd : bool;
  var y_is_odd : bool;
  let x_24 : f32 = gl_FragCoord.x;
  x_is_odd = ((i32(x_24) & 1) == 1);
  let x_29 : f32 = gl_FragCoord.y;
  y_is_odd = ((i32(x_29) & 1) == 1);
  let x_33 : bool = x_is_odd;
  let x_34 : bool = y_is_odd;
  out_data = select(0, 1, (x_33 || x_34));
  return;
}

struct main_out {
  @location(0)
  out_data_1 : i32;
};

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