simplify xlc intrinsics handling
This commit is contained in:
parent
043c1e4a69
commit
1ade10c862
@ -49,12 +49,6 @@
|
|||||||
# define FMT_ICC_VERSION 0
|
# define FMT_ICC_VERSION 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __ibmxl__
|
|
||||||
# define FMT_XLC_VERSION __ibmxl_vrm__
|
|
||||||
#else
|
|
||||||
# define FMT_XLC_VERSION 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
# define FMT_MSC_VERSION _MSC_VER
|
# define FMT_MSC_VERSION _MSC_VER
|
||||||
# define FMT_MSC_WARNING(...) __pragma(warning(__VA_ARGS__))
|
# define FMT_MSC_WARNING(...) __pragma(warning(__VA_ARGS__))
|
||||||
|
|||||||
@ -391,14 +391,11 @@ class uint128_fallback {
|
|||||||
hi_ += (lo_ < n ? 1 : 0);
|
hi_ += (lo_ < n ? 1 : 0);
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
#if FMT_XLC_VERSION && defined(_ARCH_PWR9)
|
#if FMT_HAS_BUILTIN(__builtin_addcll) && !defined(__ibmxl__)
|
||||||
lo_ = __addex(lo_, n, 0, &carry);
|
|
||||||
hi_ += carry;
|
|
||||||
#elif FMT_HAS_BUILTIN(__builtin_addcll) && !FMT_XLC_VERSION
|
|
||||||
unsigned long long carry;
|
unsigned long long carry;
|
||||||
lo_ = __builtin_addcll(lo_, n, 0, &carry);
|
lo_ = __builtin_addcll(lo_, n, 0, &carry);
|
||||||
hi_ += carry;
|
hi_ += carry;
|
||||||
#elif FMT_HAS_BUILTIN(__builtin_ia32_addcarryx_u64) && !FMT_XLC_VERSION
|
#elif FMT_HAS_BUILTIN(__builtin_ia32_addcarryx_u64) && !defined(__ibmxl__)
|
||||||
unsigned long long result;
|
unsigned long long result;
|
||||||
auto carry = __builtin_ia32_addcarryx_u64(0, lo_, n, &result);
|
auto carry = __builtin_ia32_addcarryx_u64(0, lo_, n, &result);
|
||||||
lo_ = result;
|
lo_ = result;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user