[Bug target/79436] [ARM Cortex-M4F] VFMA used in place of subtraction gives inexact results
pinskia at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Feb 8 23:06:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79436
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Resolution|--- |INVALID
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
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.
In this case what is happening is the following:
we get:
a * b - a * b;
Which gets transformed into:
c = a*b
c1 = -c
d = a*b + (c1)
Which is correct but not what you are expecting. See above above about
-ffp-contract=.
More information about the Gcc-bugs
mailing list