struct buf0 {
  one : i32;
};

var<private> x_GLF_color : vec4<f32>;

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

fn main_1() {
  var x_24 : vec4<f32>;
  x_GLF_color = vec4<f32>(0.0, 0.0, 0.0, 0.0);
  let x_26 : i32 = x_6.one;
  if ((x_26 == 0)) {
    return;
  }
  x_24 = vec4<f32>(1.0, 0.0, 0.0, 1.0);
  x_GLF_color = vec4<f32>(1.0, 0.0, 0.0, 1.0);
  return;
}

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

[[stage(fragment)]]
fn main() -> main_out {
  main_1();
  return main_out(x_GLF_color);
}

fn func_() -> vec4<f32> {
  return vec4<f32>(1.0, 0.0, 0.0, 1.0);
}
