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
jos...@codesourcery.com

Reply via email to