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