Warnings in GMP.H, and potentially more serious problem
user42 at zip.com.au
Mon Jul 5 02:14:58 CEST 2004
<jfoug at cox.net> writes:
> return __gmp_l & (~((mp_limb_t) (__gmp_n != 0)));
Not quite, but ~x+1 I guess.
> I am not sure if the code you listed below: return (__gmp_n != 0 ?
> __gmp_l : 0); would cause conditional execution paths or not, but I
> image that it does.
When I tried it gcc was good about optimizing that form.
One thing I don't want to do is obscure the fact that it can (and
should) be a cmov, or predicated, on suitable chips. But somewhat
surprisingly gcc seems smart enough to even recognise the neg+and can
be turned into a cmov.
All followups to gmp-bugs at swox.com please.
More information about the gmp-bugs