diff --git a/include/boost/unordered/detail/foa.hpp b/include/boost/unordered/detail/foa.hpp index 61fbf732..0f9f1b79 100644 --- a/include/boost/unordered/detail/foa.hpp +++ b/include/boost/unordered/detail/foa.hpp @@ -39,12 +39,24 @@ #include #include -#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 -#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 +#elif defined(BOOST_UNORDERED_LITTLE_ENDIAN_NEON) #include #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