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: 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


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