| 28 | /* Prefer uint128 if available: GCC, clang, ICC */ |
| 29 | #ifdef __SIZEOF_INT128__ |
| 30 | static inline uint64_t mulhilo64(uint64_t a, uint64_t b, uint64_t *hip) { |
| 31 | __uint128_t product = ((__uint128_t)a) * ((__uint128_t)b); |
| 32 | *hip = product >> 64; |
| 33 | return (uint64_t)product; |
| 34 | } |
| 35 | #else |
| 36 | #if defined(_WIN32) && !defined(__MINGW32__) |
| 37 | #include <intrin.h> |
no test coverage detected