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_20 : u32 = x_2.x;
  let x_22 : u32 = x_5.field0[x_20];
  let x_24 : u32 = x_6.field0[x_20];
  x_7.field0[x_20] = bitcast<u32>((bitcast<i32>(x_22) / bitcast<i32>(x_24)));
  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();
}
