This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Excess precision problem on IA-64
- From: Eric Botcazou <ebotcazou at adacore dot com>
- To: Steve Ellcey <sje at cup dot hp dot com>
- Cc: pinskia at physics dot uc dot edu, gcc at gcc dot gnu dot org
- Date: Thu, 27 Oct 2005 23:38:55 +0200
- Subject: Re: Excess precision problem on IA-64
- References: <200510272125.OAA27036@hpsje.cup.hp.com>
> 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.
Thanks for the info.
> 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.
If that's the consensus among IA-64 maintainers, it's fine with me.
--
Eric Botcazou