pub fn compute_shape<D>(
    ashape: &[D],
    bshape: &[D],
    axes: MatMulAxes
) -> Result<(D, D, D, SmallVec<[D; 4]>), Error>where
    D: DimLike,