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