[[block]]
struct buf0 {
  injectionSwitch : vec2<f32>;
};

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

var<private> x_GLF_color : vec4<f32>;

fn func_() -> i32 {
  var loop_count : i32;
  var x_38_phi : i32;
  loop_count = 0;
  x_38_phi = 0;
  loop {
    var x_39 : i32;
    var x_45_phi : i32;
    let x_38 : i32 = x_38_phi;
    let x_43 : i32 = (x_38 + 1);
    loop_count = x_43;
    x_45_phi = x_43;
    loop {
      let x_45 : i32 = x_45_phi;
      x_39 = (x_45 + 1);
      loop_count = x_39;
      let x_50 : f32 = x_7.injectionSwitch.x;
      let x_52 : f32 = x_7.injectionSwitch.y;
      if ((x_50 < x_52)) {
        return 1;
      }
      let x_57 : f32 = x_7.injectionSwitch.x;
      let x_59 : f32 = x_7.injectionSwitch.y;
      if ((x_57 < x_59)) {
        break;
      }

      continuing {
        x_45_phi = x_39;
        if ((x_39 < 100)) {
        } else {
          break;
        }
      }
    }

    continuing {
      x_38_phi = x_39;
      if ((x_39 < 100)) {
      } else {
        break;
      }
    }
  }
  return 0;
}

fn main_1() {
  let x_31 : i32 = func_();
  if ((x_31 == 1)) {
    x_GLF_color = vec4<f32>(1.0, 0.0, 0.0, 1.0);
  } else {
    x_GLF_color = vec4<f32>(1.0, 1.0, 1.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);
}
