This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Excess precision problem on IA-64


> > This seems like any other target which has a fused multiply and add 
> > instruction like PPC.  Maybe a target option to turn on and off the fma
> > instruction like there is for PPC.
> 
> I'm under the impression that it's worse on IA-64 because of the "infinite 
> precision", but I might be wrong.
> 
> -- 
> Eric Botcazou

The HP compiler generates fused multiply and add by default and has several
settings for the +Ofltacc option to control this (and other optimizations
that affect floating point accuracy).

+Ofltacc=default

	Allows contractions, such as fused multiply-add (FMA), but
	disallows any other floating point optimization that can result
	in numerical differences.

+Ofltacc=limited

	Like default, but also allows floating point optimizations which
	may affect the generation and propagation of infinities, NaNs,
	and the sign of zero.

+Ofltacc=relaxed

	In addition to the optimizations allowed by limited, permits
	optimizations, such as reordering of expressions, even if
	parenthesized, that may affect rounding error.  This is the same
	as +Onofltacc.

+Ofltacc=strict

	Disallows any floating point optimization that can result in
	numerical differences.  This is the same as +Ofltacc.

It would be easy enough to add an option that turned off the use of the
fused multiply and add in GCC but I would hate to see its use turned off
by default.

Steve Ellcey
sje@cup.hp.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]