[Bug middle-end/79720] floating point result depends on optimization level

pinskia at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Sun Feb 26 17:57:00 GMT 2017


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79720

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---

       v_10 = a_real * v_9;
       v_11 = a_imag + v_10;

This can produce either a multiple and an add or a fused multiply add depending
on if the target supports fused multiple add.

See
https://gcc.gnu.org/onlinedocs/gcc-6.3.0/gcc/Optimize-Options.html#index-ffp-contract-715:
-ffp-contract=style
-ffp-contract=off disables floating-point expression contraction.
-ffp-contract=fast enables floating-point expression contraction such as
forming of fused multiply-add operations if the target has native support for
them. -ffp-contract=on enables floating-point expression contraction if allowed
by the language standard. This is currently not implemented and treated equal
to -ffp-contract=off.
The default is -ffp-contract=fast. 


Try again with -ffp-contract=off .


More information about the Gcc-bugs mailing list