changed detection of Intel Compiler Classic to distinguish MS-Windows (#2510)

* changed detection of Intel Compiler Classic to distinguish MS-Windows

* replaced !FMT_ICC_ON_WINDOWS by FMT_ICC_POSIX
removed #pragma manged

* replaced FMT_ICC_POSIX with FMT_ICC_INTRINSIC_BUG to be crystal clear about the macro's purpose
This commit is contained in:
Mathias Born
2021-10-02 14:43:41 +02:00
committed by GitHub
parent 7b339795a1
commit 32865aeaab
2 changed files with 11 additions and 15 deletions

View File

@ -32,10 +32,15 @@
# define FMT_GCC_PRAGMA(arg)
#endif
#if defined(__INTEL_COMPILER)
#ifdef __ICL
# define FMT_ICC_VERSION __ICL
# define FMT_ICC_INTRINSIC_BUG 1
#elif defined(__INTEL_COMPILER)
# define FMT_ICC_VERSION __INTEL_COMPILER
# define FMT_ICC_INTRINSIC_BUG 0
#else
# define FMT_ICC_VERSION 0
# define FMT_ICC_INTRINSIC_BUG 0
#endif
#ifdef __NVCC__

View File

@ -49,14 +49,6 @@
# define FMT_GCC_VISIBILITY_HIDDEN
#endif
#ifdef __INTEL_COMPILER
# define FMT_ICC_VERSION __INTEL_COMPILER
#elif defined(__ICL)
# define FMT_ICC_VERSION __ICL
#else
# define FMT_ICC_VERSION 0
#endif
#ifdef __NVCC__
# define FMT_CUDA_VERSION (__CUDACC_VER_MAJOR__ * 100 + __CUDACC_VER_MINOR__)
#else
@ -173,10 +165,13 @@ FMT_END_NAMESPACE
!FMT_MSC_VER
# define FMT_BUILTIN_CLZLL(n) __builtin_clzll(n)
#endif
#if (FMT_GCC_VERSION || FMT_HAS_BUILTIN(__builtin_ctz) || FMT_ICC_VERSION)
#if (FMT_GCC_VERSION || FMT_HAS_BUILTIN(__builtin_ctz) || FMT_ICC_VERSION) && \
!FMT_ICC_INTRINSIC_BUG
# define FMT_BUILTIN_CTZ(n) __builtin_ctz(n)
#endif
#if (FMT_GCC_VERSION || FMT_HAS_BUILTIN(__builtin_ctzll) || FMT_ICC_VERSION)
#if (FMT_GCC_VERSION || FMT_HAS_BUILTIN(__builtin_ctzll) || \
FMT_ICC_VERSION) && \
!FMT_ICC_INTRINSIC_BUG
# define FMT_BUILTIN_CTZLL(n) __builtin_ctzll(n)
#endif
@ -192,7 +187,6 @@ FMT_BEGIN_NAMESPACE
namespace detail {
// Avoid Clang with Microsoft CodeGen's -Wunknown-pragmas warning.
# if !defined(__clang__)
# pragma managed(push, off)
# pragma intrinsic(_BitScanForward)
# pragma intrinsic(_BitScanReverse)
# if defined(_WIN64)
@ -254,9 +248,6 @@ inline auto ctzll(uint64_t x) -> int {
return static_cast<int>(r);
}
# define FMT_BUILTIN_CTZLL(n) detail::ctzll(n)
# if !defined(__clang__)
# pragma managed(pop)
# endif
} // namespace detail
FMT_END_NAMESPACE
#endif