// Copyright (C) 2013 Davis E. King (davis@dlib.net) // License: Boost Software License See LICENSE.txt for the full license. #ifndef DLIB_SIMd_CHECK_Hh_ #define DLIB_SIMd_CHECK_Hh_ //#define DLIB_DO_NOT_USE_SIMD // figure out which SIMD instructions we can use. #ifndef DLIB_DO_NOT_USE_SIMD #if defined(_MSC_VER) #ifdef __AVX__ #ifndef DLIB_HAVE_SSE2 #define DLIB_HAVE_SSE2 #endif #ifndef DLIB_HAVE_SSE3 #define DLIB_HAVE_SSE3 #endif #ifndef DLIB_HAVE_SSE41 #define DLIB_HAVE_SSE41 #endif #ifndef DLIB_HAVE_AVX #define DLIB_HAVE_AVX #endif #endif #if defined(_M_IX86_FP) && _M_IX86_FP >= 2 && !defined(DLIB_HAVE_SSE2) #define DLIB_HAVE_SSE2 #endif #else #ifdef __SSE2__ #define DLIB_HAVE_SSE2 #endif #ifdef __SSSE3__ #define DLIB_HAVE_SSE3 #endif #ifdef __SSE4_1__ #define DLIB_HAVE_SSE41 #endif #ifdef __AVX__ #define DLIB_HAVE_AVX #endif #ifdef __AVX2__ #define DLIB_HAVE_AVX2 #endif #endif #endif // ---------------------------------------------------------------------------------------- #ifdef DLIB_HAVE_SSE2 #include #include #include #endif #ifdef DLIB_HAVE_SSE3 #include // SSE3 #include #endif #ifdef DLIB_HAVE_SSE41 #include // SSE4 #endif #ifdef DLIB_HAVE_AVX #include // AVX #endif #ifdef DLIB_HAVE_AVX2 #include #endif #endif // DLIB_SIMd_CHECK_Hh_