#version 310 es
precision mediump float;

struct strided_arr {
  vec2 el;
};

struct SSBO {
  strided_arr m[2];
};

layout(binding = 0) buffer SSBO_1 {
  strided_arr m[2];
} ssbo;
mat2 arr_to_mat2x2_stride_16(strided_arr arr[2]) {
  return mat2(arr[0u].el, arr[1u].el);
}

strided_arr[2] mat2x2_stride_16_to_arr(mat2 mat) {
  strided_arr tint_symbol = strided_arr(mat[0u]);
  strided_arr tint_symbol_1 = strided_arr(mat[1u]);
  strided_arr tint_symbol_2[2] = strided_arr[2](tint_symbol, tint_symbol_1);
  return tint_symbol_2;
}

void f_1() {
  mat2 x_15 = arr_to_mat2x2_stride_16(ssbo.m);
  ssbo.m = mat2x2_stride_16_to_arr(x_15);
  return;
}

void f() {
  f_1();
}

layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
void main() {
  f();
  return;
}
