Using the same approach as of Strassen's only 5 multiplications are sufficient to compute square of a matrix. If A[2][2] = [a, b, c, d], the multiplications are a * a, d * d, b * (a + d), c * (a + d), b * c.
If we generalise this algorithm for getting the square of a matrix, the complexity reduces to n^log5 with base 2.
I was asked a question to find what is wrong with this algorithm and when it fails if we generalise this algorithm to find the square of matrix?