diff --git a/include/boost/predef/hardware/simd/x86/avx.h b/include/boost/predef/hardware/simd/x86/avx.h index c49383c..1a0bf50 100644 --- a/include/boost/predef/hardware/simd/x86/avx.h +++ b/include/boost/predef/hardware/simd/x86/avx.h @@ -9,4 +9,45 @@ http://www.boost.org/LICENSE_1_0.txt) #ifndef BOOST_PREDEF_HARDWARE_SIMD_X86_AVX_H #define BOOST_PREDEF_HARDWARE_SIMD_X86_AVX_H +#include +#include + +/*` + [heading `BOOST_HW_SIMD_X86_AVX`] + + [@https://en.wikipedia.org/wiki/Advanced_Vector_Extensions AVX] x86 extension. + Version number is: 5.0.0. Not available for version of MSVC below 16.00.40219. + + [table + [[__predef_symbol__] [__predef_version__]] + + [[`__AVX__`] [__predef_detection__]] + ] + */ + +#define BOOST_HW_SIMD_X86_AVX BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__AVX__) +# undef BOOST_HW_SIMD_X86_AVX +# if defined(BOOST_COMP_MSVC_AVAILABLE) && BOOST_COMP_MSVC > BOOST_VERSION_NUMBER(16, 0, 40219)\ + || !defined(BOOST_COMP_MSVC_AVAILABLE) +# define BOOST_HW_SIMD_X86_AVX BOOST_VERSION_NUMBER(5, 0, 0) +# define BOOST_HW_SIMD_X86_AVX_AVAILABLE +# endif #endif + +#define BOOST_HW_SIMD_X86_AVX_NAME "AVX" + +#if !defined(BOOST_HW_SIMD_X86) && defined(BOOST_HW_SIMD_X86_AVX_AVAILABLE) +# define BOOST_HW_SIMD_X86 BOOST_HW_SIMD_X86_AVX +# define BOOST_HW_SIMD_X86_NAME BOOST_HW_SIMD_X86_AVX_NAME +#endif + +#if defined(BOOST_HW_SIMD_X86_AVX_AVAILABLE) +# include +#endif + +#endif + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_HW_SIMD_X86_AVX, BOOST_HW_SIMD_X86_AVX_NAME)