Changes imported from Abseil "staging" branch:
- aba727a5943a014392e3873349cee9dd5efc634e Avoid using 128-bit intrinsics for Clang on Windows. by Abseil Team <absl-team@google.com> - cdd19f1eda562af8906bff8feff827eb8e8e9797 Utilize the rtems TID infrastructure on myriad2 platforms. by Abseil Team <absl-team@google.com> - 52f7f55daa84ea25fa210d1b9d2bd64d128e1d81 Use intrinsic 128 bit integer when available for division... by Alex Strelnikov <strel@google.com> - 51f881b1152c0c861cf7fcac53f30d3c7ce12902 Merge GitHub #95: Fix compiler version check for clang-cl... by Derek Mauro <dmauro@google.com> GitOrigin-RevId: aba727a5943a014392e3873349cee9dd5efc634e Change-Id: I9b52d84095537acbbc96d3f74917f78da9a51156
This commit is contained in:
parent
5337d2d0e3
commit
94f0f79ecd
3 changed files with 35 additions and 7 deletions
|
@ -130,16 +130,26 @@ uint128::uint128(double v) : uint128(MakeUint128FromFloat(v)) {}
|
|||
uint128::uint128(long double v) : uint128(MakeUint128FromFloat(v)) {}
|
||||
|
||||
uint128 operator/(uint128 lhs, uint128 rhs) {
|
||||
#if defined(ABSL_HAVE_INTRINSIC_INT128)
|
||||
return static_cast<unsigned __int128>(lhs) /
|
||||
static_cast<unsigned __int128>(rhs);
|
||||
#else // ABSL_HAVE_INTRINSIC_INT128
|
||||
uint128 quotient = 0;
|
||||
uint128 remainder = 0;
|
||||
DivModImpl(lhs, rhs, "ient, &remainder);
|
||||
return quotient;
|
||||
#endif // ABSL_HAVE_INTRINSIC_INT128
|
||||
}
|
||||
uint128 operator%(uint128 lhs, uint128 rhs) {
|
||||
#if defined(ABSL_HAVE_INTRINSIC_INT128)
|
||||
return static_cast<unsigned __int128>(lhs) %
|
||||
static_cast<unsigned __int128>(rhs);
|
||||
#else // ABSL_HAVE_INTRINSIC_INT128
|
||||
uint128 quotient = 0;
|
||||
uint128 remainder = 0;
|
||||
DivModImpl(lhs, rhs, "ient, &remainder);
|
||||
return remainder;
|
||||
#endif // ABSL_HAVE_INTRINSIC_INT128
|
||||
}
|
||||
|
||||
namespace {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue