http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60392
--- Comment #5 from Mikael Morin <mikael at gcc dot gnu.org> --- Created attachment 32307 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=32307&action=edit preliminary patch This removes the difference between my_mul/my_mul_cont. However this is not yet correct, with the patch the program output is: Normal: 0 7 10 15 22 7 10 15 22 Transposed: 0 5 11 11 25 5 11 11 25 and according to maxima (so rather accurate): matmul(transpose(a), a) == matrix([10, 14], [14, 20]) and matrix([5, 11], [11, 25]) == matmul(a, transpose(a)) So there remains a wrong transposition hiding somewhere.