https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92283
--- Comment #22 from Richard Biener <rguenth at gcc dot gnu.org> --- For reference, the following assembler patch fixes the miscompare: --- results.s 2019-11-13 13:07:54.964478824 +0100 +++ results.s.ok 2019-11-13 13:06:29.024055977 +0100 @@ -2266,11 +2266,12 @@ vfmadd231sd %xmm11, %xmm10, %xmm4 # pretmp_8928, pretmp_8934, _8924 vmovsd %xmm4, 472(%rsp) # _8924, exy # results.f:473: & vkl(3,1)*vkl(3,3) - vfmadd231sd %xmm7, %xmm0, %xmm2 # pretmp_8926, prephitmp_8903, _902 + vfmadd231sd 72(%rsp), %xmm0, %xmm2 # pretmp_8926, prephitmp_8903, _902 vfmadd231sd %xmm15, %xmm14, %xmm2 # pretmp_8932, pretmp_8922, _906 vfmadd231sd %xmm13, %xmm11, %xmm2 # pretmp_8918, pretmp_8928, _8930 vmovsd %xmm2, 480(%rsp) # _8930, exz # results.f:475: & vkl(3,2)*vkl(3,3) + vmovsd 72(%rsp), %xmm7 vfmadd231sd %xmm9, %xmm7, %xmm1 # pretmp_8920, pretmp_8926, _915 vfmadd231sd %xmm12, %xmm15, %xmm1 # pretmp_8916, pretmp_8932, _919 vfmadd231sd %xmm10, %xmm13, %xmm1 # pretmp_8934, pretmp_8918, _8936