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

--- Comment #8 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Carson Range from comment #7)
> (In reply to Andrew Pinski from comment #3)
> > (In reply to Sam James from comment #2)
> > > Please try -ffp-contract=off or -ffp-contract=standard.
> > 
> > -ffp-contract=standard is NOT an option, it is -ffp-contract=on.
> > 
> > Yes it is a bit confusing that way. off means no contraction will happen.
> > while on means only contraction allowed by the standard (inside expressions
> > only and not outside of statements) unless one of the #pragma is in turned
> > on. While fast means across all statements.
> > 
> > It might also be the case that =on might fail too because the code is
> > expecting no contraction (that is no use of Fused multiply add 
> > instructions).
> 
> What is this difference between ffp-contract on and off? I assume the
> default is fast which causes this error I believe right?

I mentioned the difference between on/off in that comment and the default I
mentioned earlier:
=off means no contraction will happen.

while =on means only contraction allowed by the standard (inside expressions
only and not outside of statements) unless one of the #pragma is in turned on
(GCC does not implement the #pragma).

While =fast means across all statements.

The default is -ffp-contract=fast unless you specify a non-gnu -std= option

Reply via email to