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

[[block]]
struct S {
  field0 : RTArr;
};

var<private> x_2 : vec3<u32>;

[[group(0), binding(0)]] var<storage, read_write> x_5 : S;

[[group(0), binding(1)]] var<storage, read_write> x_6 : S;

[[group(0), binding(2)]] var<storage, read_write> x_7 : S;

fn main_1() {
  let x_21 : u32 = x_2.x;
  let x_23 : u32 = x_5.field0[x_21];
  let x_25 : u32 = x_6.field0[x_21];
  x_7.field0[x_21] = select(0u, 1u, (bitcast<i32>(x_23) < bitcast<i32>(x_25)));
  return;
}

[[stage(compute), workgroup_size(1, 1, 1)]]
fn main([[builtin(global_invocation_id)]] x_2_param : vec3<u32>) {
  x_2 = x_2_param;
  main_1();
}
