On Oct 27, 2005, at 14:12, Eric Botcazou wrote:
I'm under the impression that it's worse on IA-64 because of the "infinite
precision", but I might be wrong.

Fused multiply-add always uses "infinite precision" in the intermediate
result. Only a single rounding is performed at the end. We really should
have a way to express situations where operations may or may not be
contracted, instead of having to do this on a whole-compilation level.

Many computations, especially those involving higher-precision intermediate results, are far easier to implement with explicit control over cases where contractions are allowed. Such techniques are used a lot for implementation
of correctly rounded elementary functions.

Currently the only way we can get that kind of precision, while being
able to have the code inlined, is to use assembler insertions, that
unnecessarily make the code system dependent.

  -Geert

Reply via email to