limb = mpz_getlimbn(d_val_gmp, i); if (mp_bits_per_limb == 64) { uint64_t lo = limb; uint64_t hi = (limb >> 32); x = lo ^ res; x = ((x >> 16) ^ x) * p0; x = ((x >> 16) ^ x) * p1; x = ((x >> 16) ^ x); p0 = s_hash_primes[j++]; if (j == s_n_primes) j = 0; p1 = s_hash_primes[j++]; if (j == s_n_primes) j = 0; x = x ^ hi; } else { assert(mp_bits_per_limb == 32); x = res ^ limb; }