struct Uniforms {
  aShape : vec2<u32>;
  bShape : vec2<u32>;
  outShape : vec2<u32>;
}

struct Matrix {
  numbers : array<u32>;
}

[[group(0), binding(0)]] var<storage, read> firstMatrix : Matrix;

[[group(0), binding(1)]] var<storage, read> secondMatrix : Matrix;

[[group(0), binding(2)]] var<storage, write> resultMatrix : Matrix;

[[group(0), binding(3)]] var<uniform> uniforms : Uniforms;

[[stage(compute), workgroup_size(2, 2, 1)]]
fn main([[builtin(global_invocation_id)]] global_id : vec3<u32>) {
  let resultCell : vec2<u32> = vec2<u32>(global_id.y, global_id.x);
  let dimInner : u32 = uniforms.aShape.y;
  let dimOutter : u32 = uniforms.outShape.y;
  var result : u32 = 0u;
  for(var i : u32 = 0u; (i < dimInner); i = (i + 1u)) {
    let a : u32 = (i + (resultCell.x * dimInner));
    let b : u32 = (resultCell.y + (i * dimOutter));
    result = (result + (firstMatrix.numbers[a] * secondMatrix.numbers[b]));
  }
  let index : u32 = (resultCell.y + (resultCell.x * dimOutter));
  resultMatrix.numbers[index] = result;
}
