Readded FASTFLOAT_CONSTEVAL, but not used currently. Cleanup for FASTFLOAT_ASSUME.

This commit is contained in:
IRainman 2025-04-07 23:10:38 +03:00
parent ee620a029d
commit 1651c2b0f8

View File

@ -23,8 +23,10 @@
#if defined(__cpp_lib_is_constant_evaluated) && \
__cpp_lib_is_constant_evaluated >= 201811L
#define FASTFLOAT_HAS_IS_CONSTANT_EVALUATED 1
#define FASTFLOAT_CONSTEVAL consteval
#else
#define FASTFLOAT_HAS_IS_CONSTANT_EVALUATED 0
#define FASTFLOAT_CONSTEVAL FASTFLOAT_CONSTEXPR14
#endif
#if defined(__cpp_lib_byteswap)
@ -58,24 +60,10 @@
// For support attribute [[assume]] is declared in P1774
#if 1 // TODO needs platform specific tests for this
#define FASTFLOAT_ASSUME(expr)
#elif defined(__cpp_attrubute_assume)
#if defined(__cpp_attrubute_assume)
#define FASTFLOAT_ASSUME(expr) [[assume(expr)]]
#elif defined(__clang__) // needs testing
#define FASTFLOAT_ASSUME(expr) __builtin_assume(expr)
#elif defined(__GNUC__) && !defined(__ICC) // needs testing
#define FASTFLOAT_ASSUME(expr) \
if (expr) { \
} else { \
__builtin_unreachable(); \
}
#elif defined(__ICC) // needs testing
#define FASTFLOAT_ASSUME(expr) __assume(expr)
#elif defined(_MSC_VER) // needs testing
/* currently disable, because MSVC is generated slower code when enabled,
it's probably reason why MSVC doesnt have [[assume]] */
#define FASTFLOAT_ASSUME(expr) /*__assume(expr)*/
#else
#define FASTFLOAT_ASSUME(expr)
#endif
#endif // FASTFLOAT_CONSTEXPR_FEATURE_DETECT_H