This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: extending fpmuls
On Tue, 25 Oct 2011, Frederic Riss wrote:
> When I read the paragraph on expression contraction, it seems that a
> lot of liberty is left to the implementation wrt the kind of
> contraction it does. The footnotes even talk about different accuracy,
> loss of predictability and fast machine specific instructions. I don't
> see what would prevent a conformant compiler to 'contract' the
> discussed patterns into a widenning float multiply, without taking
> care of initial operator's boundaries.
It refers specifically to "A floating expression". I interpret that as
meaning that
t = a*b + c;
may contract the expression a*b + c into a fused multiply-add, but
tmp = a*b;
t = tmp + c;
may not contract because a*b is in a separate expression from c. This is
in accordance with the rules for excess precision, where assignments are
required to eliminate excess precision.
--
Joseph S. Myers
joseph@codesourcery.com