struct strided_arr {
  @size(16)
  el : vec2<f32>;
}

struct SSBO {
  m : array<strided_arr, 2u>;
}

@group(0) @binding(0) var<storage, read_write> ssbo : SSBO;

fn arr_to_mat2x2_stride_16(arr : array<strided_arr, 2u>) -> mat2x2<f32> {
  return mat2x2<f32>(arr[0u].el, arr[1u].el);
}

fn mat2x2_stride_16_to_arr(mat : mat2x2<f32>) -> array<strided_arr, 2u> {
  return array<strided_arr, 2u>(strided_arr(mat[0u]), strided_arr(mat[1u]));
}

fn f_1() {
  let x_15 : mat2x2<f32> = arr_to_mat2x2_stride_16(ssbo.m);
  ssbo.m = mat2x2_stride_16_to_arr(x_15);
  return;
}

@stage(compute) @workgroup_size(1, 1, 1)
fn f() {
  f_1();
}
