mirror of
https://github.com/boostorg/unordered.git
synced 2025-05-09 23:23:59 +00:00
Feature/SIMD config (#184)
* added BOOST_UNORDERED_[ENABLE|DISABLE]_[SSE2|LITTLE_ENDIAN_NEON] * renamed and refactored * removed #undefs of SIMD usage macros
This commit is contained in:
parent
efc33b18be
commit
c64ed1caa3
@ -39,12 +39,24 @@
|
||||
#include <type_traits>
|
||||
#include <utility>
|
||||
|
||||
#if defined(__SSE2__)||\
|
||||
#if !defined(BOOST_UNORDERED_DISABLE_SSE2)
|
||||
#if defined(BOOST_UNORDERED_ENABLE_SSE2)|| \
|
||||
defined(__SSE2__)|| \
|
||||
defined(_M_X64)||(defined(_M_IX86_FP)&&_M_IX86_FP>=2)
|
||||
#define BOOST_UNORDERED_SSE2
|
||||
#include <emmintrin.h>
|
||||
#elif defined(__ARM_NEON)&&!defined(__ARM_BIG_ENDIAN)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if !defined(BOOST_UNORDERED_DISABLE_NEON)
|
||||
#if defined(BOOST_UNORDERED_ENABLE_NEON)||\
|
||||
(defined(__ARM_NEON)&&!defined(__ARM_BIG_ENDIAN))
|
||||
#define BOOST_UNORDERED_LITTLE_ENDIAN_NEON
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(BOOST_UNORDERED_SSE2)
|
||||
#include <emmintrin.h>
|
||||
#elif defined(BOOST_UNORDERED_LITTLE_ENDIAN_NEON)
|
||||
#include <arm_neon.h>
|
||||
#endif
|
||||
|
||||
@ -2198,13 +2210,7 @@ private:
|
||||
} /* namespace unordered */
|
||||
} /* namespace boost */
|
||||
|
||||
#undef BOOST_UNORDERED_STATIC_ASSERT_HASH_PRED
|
||||
#undef BOOST_UNORDERED_ASSUME
|
||||
#undef BOOST_UNORDERED_HAS_BUILTIN
|
||||
#undef BOOST_UNORDERED_STATIC_ASSERT_HASH_PRED
|
||||
#ifdef BOOST_UNORDERED_LITTLE_ENDIAN_NEON
|
||||
#undef BOOST_UNORDERED_LITTLE_ENDIAN_NEON
|
||||
#endif
|
||||
#ifdef BOOST_UNORDERED_SSE2
|
||||
#undef BOOST_UNORDERED_SSE2
|
||||
#endif
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user