type Arr = @stride(16) array<i32, 4>;

struct buf0 {
  x_GLF_uniform_int_values : Arr;
};

@group(0) @binding(0) var<uniform> x_5 : buf0;

var<private> x_GLF_color : vec4<f32>;

fn main_1() {
  var x_28 : i32;
  var x_29 : i32;
  var x_28_phi : i32;
  var x_31_phi : i32;
  var x_42_phi : i32;
  let x_24 : i32 = min(1, reverseBits(1));
  let x_26 : i32 = x_5.x_GLF_uniform_int_values[3];
  x_28_phi = x_26;
  x_31_phi = 1;
  loop {
    var x_32 : i32;
    x_28 = x_28_phi;
    let x_31 : i32 = x_31_phi;
    x_42_phi = x_28;
    if ((x_31 <= (x_24 - 1))) {
    } else {
      break;
    }
    x_29 = bitcast<i32>((x_28 + bitcast<i32>(x_31)));
    let x_38 : i32 = x_5.x_GLF_uniform_int_values[0];
    if ((x_38 == 1)) {
      x_42_phi = x_29;
      break;
    }

    continuing {
      x_32 = (x_31 + 1);
      x_28_phi = x_29;
      x_31_phi = x_32;
    }
  }
  let x_42 : i32 = x_42_phi;
  let x_44 : i32 = x_5.x_GLF_uniform_int_values[2];
  if ((x_42 == x_44)) {
    let x_50 : i32 = x_5.x_GLF_uniform_int_values[0];
    let x_51 : f32 = f32(x_50);
    let x_53 : i32 = x_5.x_GLF_uniform_int_values[1];
    let x_54 : f32 = f32(x_53);
    x_GLF_color = vec4<f32>(x_51, x_54, x_54, x_51);
  } else {
    let x_57 : i32 = x_5.x_GLF_uniform_int_values[1];
    let x_58 : f32 = f32(x_57);
    x_GLF_color = vec4<f32>(x_58, x_58, x_58, x_58);
  }
  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);
}