fn vector() {
  let idx = 3;
  let x = vec2(1, 2)[idx];
}

fn matrix() {
  let idx = 4;
  let x = mat2x2(1, 2, 3, 4)[idx];
}

fn fixed_size_array() {
  let arr = array(1, 2);
  let idx = 3;
  let x = arr[idx];
}

@group(0) @binding(0) var<storage> rarr : array<f32>;

fn runtime_size_array() {
  let idx = -1;
  let x = rarr[idx];
}

@compute @workgroup_size(1)
fn f() {
  vector();
  matrix();
  fixed_size_array();
  runtime_size_array();
}
