[[block]]
struct buf0 {
  zero : f32;
};

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

var<private> x_GLF_color : vec4<f32>;

fn merge_() -> i32 {
  let x_40 : f32 = x_6.zero;
  if ((x_40 < 0.0)) {
    return 0;
  }
  return 0;
}

fn main_1() {
  var res : i32;
  x_GLF_color = vec4<f32>(1.0, 0.0, 0.0, 1.0);
  loop {
    let x_32 : f32 = x_6.zero;
    switch(i32(x_32)) {
      case 0: {
        return;
      }
      default: {
      }
    }

    continuing {
      if (false) {
      } else {
        break;
      }
    }
  }
  let x_8 : i32 = merge_();
  res = x_8;
  let x_9 : i32 = res;
  let x_36 : f32 = f32(x_9);
  x_GLF_color = vec4<f32>(x_36, x_36, x_36, x_36);
  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);
}
