double rounding in x86

Tom Lynch uunet!amd.com!Tom.Lynch
Thu Aug 31 13:48:40 PDT 1995


I feel a little bit like we are talking on different channels.... :-)

     >      ** there is a footnote in the IEEE spec which "allows" for extended
     >      range.  It is not clear what the meaning of the foot notes is, but
     >      this is at least arguably compliant.

   I think, taking into consideration the entire content of the Standard, that
   it would be difficult to argue that if a footnote implies that something is
   allowed, that something is definitely NOT allowed.


yes, that was my point.

      >      However, it certainly causes
      >      one to diverge from the values that would be produced on other
      >      platforms.
      >      It has also been argued that such divergence is immaterial.  I
      >      fail to see a purpose for the standard if this is the case.

    Perhaps this only means that if you were to come up with a standard for
    floating-point arithmetic, you would not take the same approach that was taken
    in developing the IEEE Standard.  Again, if convergence among different plat-
    forms had been a goal, the Standard would have been written differently.

Please, I am not talking about "my opinion" we are talking about what the standard *is*.
I do not believe that in an error free calculation there is any divergence, with
the one exception of having choice of detection of underflow.  Please list
the other:

        1. ...

       >      Some have argued that this memory value is not a *result*.  I
       >      do not accept this argument, as memory values are operands for
       >      further calculation.  Obviously they are results.

     If you want to use your notion of what a result is, you either have to modify
     the Standard, or else you have to qualify what you write by saying that your
     floating-point arithmetic engine is implemented as a combination of hardware

My idea of a result, is that value calculated, if you have another, please lets
see it so that we can judge if it is viable.

Althernative definition of a result: ...


> I'll let someone else tackle this, as I agree with Mr. Lynch here.  (Maybe
> there is still hope that Mr. Lynch and I might still be able to get along. :-)

In sooth, we have reached complete agreement - the debate was fun.
The standard certainly allows for a software-hardware combination to
be conformant.  Hence, it is certainly possible to do IEEE std. 754
arithmetic on x86, it is just that it doesn't result from an arbitrary
sequence of native floating-point instructions, as is the case on some
other platforms.

I am corrected, the x86 can be used in IEEE std. 754 conformant calculation, so
I am lead to reformulate my point of contention.   

I now assert that arbitrary sequences of x86 instructions should be
IEEE std. 754 conformant (an opinion), and that this could be very
easily facilitated.  Anyone agree? disagree?  I must go to issues
such as compiler design to justify this contention.

The way I see it, the exponent range should match the precision
control field.  This would make conformant arithmetic on x86
implementations faster.  Anyone know of any alternatives?

As a second point of contention, the databooks for the x86 parts
seem to promise that arbitrary sequences of x86 floating-point instructions
do perform IEEE std. 754 arithmetic - this promise is wrong.

-tom



More information about the Numeric-interest mailing list