From ad67424987aeae720054b21f3196471dac08f474 Mon Sep 17 00:00:00 2001 From: Nikolaj Bjorner Date: Wed, 6 Jun 2018 18:23:04 -0700 Subject: [PATCH] deal with shift exponent error Signed-off-by: Nikolaj Bjorner --- src/util/mpz.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/util/mpz.cpp b/src/util/mpz.cpp index 8f65a3602..6387fccd9 100644 --- a/src/util/mpz.cpp +++ b/src/util/mpz.cpp @@ -79,10 +79,10 @@ unsigned u_gcd(unsigned u, unsigned v) { if (v == 0) return u; unsigned shift = _trailing_zeros32(u | v); u >>= _trailing_zeros32(u); - v >>= _trailing_zeros32(v); if (u == 1 || v == 1) return 1 << shift; if (u == v) return u << shift; do { + v >>= _trailing_zeros32(v); #if 1 unsigned diff = u - v; unsigned mdiff = diff & (unsigned)((int)diff >> 31); @@ -113,8 +113,6 @@ unsigned u_gcd(unsigned u, unsigned v) { u = _bit_min(u, v); v = md12 | md21; #endif - - v >>= _trailing_zeros32(v); } while (v != 0); return u << shift;