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

struct SSBO {
  /* @offset(0) */
  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(m : mat2x2<f32>) -> array<strided_arr, 2u> {
  return array<strided_arr, 2u>(strided_arr(m[0u]), strided_arr(m[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;
}

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