mirror of
https://github.com/Z3Prover/z3
synced 2025-06-21 05:13:39 +00:00
deal with shift exponent error
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
d7f51f2443
commit
ad67424987
1 changed files with 1 additions and 3 deletions
|
@ -79,10 +79,10 @@ unsigned u_gcd(unsigned u, unsigned v) {
|
||||||
if (v == 0) return u;
|
if (v == 0) return u;
|
||||||
unsigned shift = _trailing_zeros32(u | v);
|
unsigned shift = _trailing_zeros32(u | v);
|
||||||
u >>= _trailing_zeros32(u);
|
u >>= _trailing_zeros32(u);
|
||||||
v >>= _trailing_zeros32(v);
|
|
||||||
if (u == 1 || v == 1) return 1 << shift;
|
if (u == 1 || v == 1) return 1 << shift;
|
||||||
if (u == v) return u << shift;
|
if (u == v) return u << shift;
|
||||||
do {
|
do {
|
||||||
|
v >>= _trailing_zeros32(v);
|
||||||
#if 1
|
#if 1
|
||||||
unsigned diff = u - v;
|
unsigned diff = u - v;
|
||||||
unsigned mdiff = diff & (unsigned)((int)diff >> 31);
|
unsigned mdiff = diff & (unsigned)((int)diff >> 31);
|
||||||
|
@ -113,8 +113,6 @@ unsigned u_gcd(unsigned u, unsigned v) {
|
||||||
u = _bit_min(u, v);
|
u = _bit_min(u, v);
|
||||||
v = md12 | md21;
|
v = md12 | md21;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
v >>= _trailing_zeros32(v);
|
|
||||||
}
|
}
|
||||||
while (v != 0);
|
while (v != 0);
|
||||||
return u << shift;
|
return u << shift;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue