struct Buf1 {
  result : i32;
};

type RTArr = @stride(4) array<u32>;

struct Buf0 {
  values : RTArr;
};

@group(0) @binding(1) var<storage, read_write> x_4 : Buf1;

@group(0) @binding(0) var<storage, read_write> x_7 : Buf0;

fn main_1() {
  var i : u32;
  x_4.result = 1;
  i = 0u;
  loop {
    let x_33 : u32 = i;
    if ((x_33 < 512u)) {
    } else {
      break;
    }
    let x_36 : u32 = i;
    let x_39 : u32 = x_7.values[(x_36 * 2u)];
    let x_40 : u32 = i;
    if ((x_39 != x_40)) {
      x_4.result = 0;
    }

    continuing {
      let x_45 : u32 = i;
      i = (x_45 + bitcast<u32>(1));
    }
  }
  return;
}

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