GMP 6.1.2 t-count_zeros failure on ARM with assertions
marc.glisse at inria.fr
Wed Jan 17 18:32:43 UTC 2018
On Wed, 17 Jan 2018, Vincent Lefevre wrote:
> On 2018-01-17 18:06:49 +0100, Marc Glisse wrote:
>> On Wed, 17 Jan 2018, Vincent Lefevre wrote:
>>> On 2018-01-17 17:23:02 +0100, Marc Glisse wrote:
>>>> Indeed, it doesn't make sense to have both the assertion and
>>>> COUNT_LEADING_ZEROS_0. Would it work to remove the assertion instead?
>>> Yes, this works too (assuming that 0 will always be converted to +0).
>> You know those details better than me, is that a dangerous assumption to
>> make? Even when restricted to the architectures / compilers that may use
>> this code? I was expecting it to be rather safe, but if you think it isn't,
>> then I'd rather go with your original patch.
> I know that both icc -O2 and tcc had issues with signed zeros in the
> past. But I haven't done any test for several years.
I expect most compilers still have issues with signed zeros in some
complicated cases, I just expect that it is very unlikely that conversion
from integer 0 would suddenly generate -0.0. The case I could imagine is:
int i = ...;
int n = -i;
double d = n;
and the compiler would badly "optimize" that to
double tmp = i;
double d = -tmp;
Well, let's see if someone else wants to comment. I am currently in favor
of removing ASSERT.
More information about the gmp-bugs