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

Reply via email to