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;
}
