Skip to content

Commit ca44a5d

Browse files
committed
Add ADX detection
1 parent 9e9858c commit ca44a5d

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

include/boost/decimal/detail/config.hpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,11 @@
9090
# include <x86intrin.h>
9191
# endif
9292
# define BOOST_DECIMAL_HAS_X64_INTRINSICS
93+
# ifdef __ADX__
94+
# define BOOST_DECIMAL_ADD_CARRY _addcarryx_u64
95+
# else
96+
# define BOOST_DECIMAL_ADD_CARRY _addcarry_u64
97+
# endif
9398
#elif defined(__ARM_NEON__)
9499
# ifndef BOOST_DECIMAL_BUILD_MODULE
95100
# include <arm_neon.h>

include/boost/decimal/detail/emulated128.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -764,8 +764,8 @@ constexpr auto operator+(uint128 lhs, uint128 rhs) noexcept -> uint128
764764
unsigned long long low {};
765765
unsigned long long high {};
766766

767-
const auto carry {_addcarryx_u64(0, lhs.low, rhs.low, &low)};
768-
_addcarryx_u64(carry, lhs.high, rhs.high, &high);
767+
const auto carry {BOOST_DECIMAL_ADD_CARRY(0, lhs.low, rhs.low, &low)};
768+
BOOST_DECIMAL_ADD_CARRY(carry, lhs.high, rhs.high, &high);
769769

770770
return uint128{high, low};
771771
}

0 commit comments

Comments
 (0)