Return-Path: <John.Harrison-request@cl.cam.ac.uk>
Delivery-Date: 
Received: from thialfi.cs.cornell.edu (no rfc931) by nene.cl.cam.ac.uk 
          with SMTP (PP-6.5) outside ac.uk; Tue, 8 Nov 1994 16:36:45 +0000
Received: from CLOYD.CS.CORNELL.EDU by thialfi.cs.cornell.edu (5.67/I-1.99G) 
          id AA05905; Tue, 8 Nov 94 09:54:54 -0500
Received: by cloyd.cs.cornell.edu (5.67/I-1.99F) id AA21949;
          Tue, 8 Nov 94 09:48:01 -0500
Received: from ULTRASTAR.EE.CORNELL.EDU by cloyd.cs.cornell.edu (5.67/I-1.99F) 
          id AA21945; Tue, 8 Nov 94 09:47:56 -0500
Date: Tue, 8 Nov 94 09:47:34 EST
From: mel@ultrastar.EE.cornell.edu (Miriam Leeser)
Received: by ultrastar.EE.CORNELL.EDU (4.1/1.6.10+n-y-Cornell-Electrical-Engineering) 
          id AA01675; Tue, 8 Nov 94 09:47:34 EST
Message-Id: <9411081447.AA01675@ultrastar.EE.CORNELL.EDU>
To: nuprlnotes@cs.cornell.edu, info-hol@cs.uidaho.edu
Subject: news of an error in Pentium floating point division


I am forwarding this off netnews because I thought this would be of
interest to the verification community.

   Newsgroups: comp.arch,comp.arch.arithmetic,comp.sys.intel
   From: dik@cwi.nl (Dik T. Winter)
   Followup-To: comp.arch.arithmetic,comp.sys.intel
   Nntp-Posting-Host: boring.cwi.nl
   Organization: CWI, Amsterdam
   Date: Sun, 6 Nov 1994 02:01:42 GMT

   In article <39g3f9$890@vkhdsu01.hda.hydro.com> Terje.Mathisen@hda.hydro.com (Terje Mathisen) writes:
    > This is just a pointer to a discussion started a few days ago over in
    > comp.sys.intel, re a problem with floating point divisions on Pentium
    > cpus.

   This is a follow-up from comp.arch, cross-posted to comp.arch.arithmetic
   and comp.sys.intel with comp.arch left out from the follow-up newsgroups
   (to make everything a bit more difficult ;-)).  For the readers of c.a.a it
   includes part of another message from c.s.i.
    > 
    > Followups should probably be directed to c.s.i to avoid cluttering the
    > news-groups.

   I included c.a.a as it has relevance for that newsgroup.
    > 
    > It seems FDIV is only carried out to about 29 bits of resolution in the
    > mantissa, which is OK for single precision, but totally absurd for a chip
    > that claims IEEE extended real (80-bit, 64 in mantissa) conformance.
    > 
   The post by Andreas Kaiser seems to imply that is not really true; here
   follows the relevant part:

   In article <783979544snx@ananke.s.bawue.de> ak@ananke.s.bawue.de (Andreas Kaiser) writes:
    > Usually, the division is correct (what did you expect?). Just a few
    > operands are divided wrong. My results (P90) with ~25.000.000.000
    > random arguments (within 1..2^46), with even results divided by two
    > until odd, to assure unique mantissa patterns (the binary exponent
    > doesn't care, of course).

   Followed by a list of 23 numbers for which the division goes wrong.
   I have rearranged the list, giving the normalized mantissa in binary
   (and indeed, exponent appears to be irrelevant):
   1000111111111111111000110101111000010101000100 = 9895574626641
   1010011111111111111101101101011000010010100000 = 1443107810341
   1011111111111111111110111000001000110111101101 = 52776539295213
   1011111111111111111110111000001001100100000000 = 206158356633
   1011111111111111111110111000001001110011111100 = 13194134824767
   1011111111111111111110111000001001111110111010 = 26388269649885
   1011111111111111111110111000001010001111110010 = 26388269650425
   1011111111111111111110111000001010010100000101 = 52776539301125
   1011111111111111111110111000001010011100010101 = 52776539301653
   1011111111111111111110111000001010110011010010 = 26388269651561
   1011111111111111111110111000001011000000000000 = 12884897291
   1011111111111111111110111000001011001000001100 = 13194134826115
   1011111111111111111110111000001011111100101111 = 52776539307823
   1011111111111111111110111000001100001000011100 = 13194134827143
   1011111111111111111110111000001100011100000100 = 13194134827457
   1011111111111111111111101110000010000101100010 = 26388276711601
   1011111111111111111111101110000010011000101100 = 13194138356107
   1011111111111111111111101110000010101011010110 = 26388276712811
   1011111111111111111111101110000010110111011111 = 52776553426399
   1011111111111111111111111011100000100101001100 = 13194139238995
   1011111111111111111111111011100000101001000000 = 824633702441
   1011111111111111111111111011100000101011101000 = 6597069619549

   Except for the first two there is a common definite pattern:
   a leading 10, followed by a bunch of 1's, followed by 0111000001.
   If the random numbers are random enough this seems to be
   significant.  I would like to see verification of the first
   two numbers listed (perhaps a transcription error or some-such?).
   -- 
   dik t. winter, cwi, kruislaan 413, 1098 sj  amsterdam, nederland, +31205924098
   home: bovenover 215, 1025 jn  amsterdam, nederland; e-mail: dik@cwi.nl

