This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc 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: [PATCH] Fix determination of lower precision in __mul


On 02/13/2013 04:05 PM, Siddhesh Poyarekar wrote:
Hi,

I introduced a dormant buglet when I committed the patch that skips
multiplication of zeroes.  The loop to determine the lower precision
of the two input numbers is buggy since it checks X[i] * Y[i] to be
non-zero to ensure that both mantissa digits are non-zero.  This is a
wrong check though since we could have numbers that have mantissa as
such:

X = {1, 0, 0, 1, 0, 0}
Y = {1, 1, 1, 0, 0, 0}

Here, the higher precision (ip2) ought to be 3 and the lower (ip)
ought to be 2.  The product check however makes the lower one as 0.  I
didn't find any input that actually triggered this bug, but here's a
patch to fix it anyway.  I had written it some time back, but it was
on another branch and had forgotten to update the submitted patch;
sorry about that.

Verified that it does not cause any regressions in the testsuite.  OK
to commit?

yes, this is ok,


Andreas
--
 Andreas Jaeger aj@{suse.com,opensuse.org} Twitter/Identica: jaegerandi
  SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
   GF: Jeff Hawn,Jennifer Guild,Felix Imendörffer,HRB16746 (AG Nürnberg)
    GPG fingerprint = 93A3 365E CE47 B889 DF7F  FED1 389A 563C C272 A126


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