This commit is contained in:
Siarhei Fedartsou 2022-09-02 15:24:20 +02:00
parent ce2da0eb8a
commit bc98df2d79

View File

@ -88,8 +88,9 @@ struct DiyFp
h++;
return DiyFp(h, e + rhs.e + 64);
#elif (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) && defined(__x86_64__)
unsigned __int128 p =
static_cast<unsigned __int128>(f) * static_cast<unsigned __int128>(rhs.f);
__extension__ using uint128 = unsigned __int128;
uint128 p =
static_cast<uint128>(f) * static_cast<uint128>(rhs.f);
uint64_t h = p >> 64;
uint64_t l = static_cast<uint64_t>(p);
if (l & (uint64_t(1) << 63)) // rounding