[[block]]
struct theSSBO {
  out_data : i32;
};

[[group(0), binding(0)]] var<storage, read_write> x_4 : theSSBO;

fn main_1() {
  var x_30 : mat2x2<f32>;
  var x_30_phi : mat2x2<f32>;
  var x_32_phi : i32;
  x_4.out_data = 42;
  x_30_phi = mat2x2<f32>(vec2<f32>(0.0, 0.0), vec2<f32>(0.0, 0.0));
  x_32_phi = 1;
  loop {
    var x_33 : i32;
    x_30 = x_30_phi;
    let x_32 : i32 = x_32_phi;
    if ((x_32 > 0)) {
    } else {
      break;
    }

    continuing {
      x_33 = (x_32 - 1);
      x_30_phi = mat2x2<f32>(vec2<f32>(1.0, 0.0), vec2<f32>(0.0, 1.0));
      x_32_phi = x_33;
    }
  }
  let x_41 : vec2<f32> = (vec2<f32>(1.0, 1.0) * mat2x2<f32>((x_30[0u] - vec2<f32>(1.0, 0.0)), (x_30[1u] - vec2<f32>(0.0, 1.0))));
  loop {
    if ((1.0 < x_41.x)) {
      break;
    }
    workgroupBarrier();
    break;
  }
  return;
}

[[stage(compute), workgroup_size(1, 1, 1)]]
fn main() {
  main_1();
}
