From 298f2fe6633905ca21079e5ee52ecfd0ba19b4ff Mon Sep 17 00:00:00 2001 From: Charly Chevalier Date: Thu, 9 Jul 2015 16:13:10 +0200 Subject: [PATCH] Add doc + _AVAILABLE for simd.h --- include/boost/predef/hardware/simd.h | 43 ++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/include/boost/predef/hardware/simd.h b/include/boost/predef/hardware/simd.h index 947c15c..e09db1a 100644 --- a/include/boost/predef/hardware/simd.h +++ b/include/boost/predef/hardware/simd.h @@ -9,8 +9,51 @@ http://www.boost.org/LICENSE_1_0.txt) #ifndef BOOST_PREDEF_HARDWARE_SIMD_H #define BOOST_PREDEF_HARDWARE_SIMD_H +/*` + [heading `BOOST_HW_SIMD`] + + The SIMD extension detected for a specific architectures. + Version number depends on the detected extension. + + [table + [[__predef_symbol__] [__predef_version__]] + + [[`BOOST_HW_SIMD_ARM_AVAILABLE`] [__predef_detection__]] + [[`BOOST_HW_SIMD_PPC_AVAILABLE`] [__predef_detection__]] + [[`BOOST_HW_SIMD_X86_AVAILABLE`] [__predef_detection__]] + ] + */ + #include #include #include +// We check if SIMD extension of multiples architectures have been detected, +// if yes, then this is an error! +#if \ + BOOST_HW_SIMD_ARM && BOOST_HW_SIMD_PPC ||\ + BOOST_HW_SIMD_ARM && BOOST_HW_SIMD_X86 ||\ + BOOST_HW_SIMD_PPC && BOOST_HW_SIMD_X86 +# error "Multiple SIMD architectures detected, this cannot happen!" +#endif + +#if defined(BOOST_HW_SIMD_X86_AVAILABLE) +# define BOOST_HW_SIMD BOOST_HW_SIMD_X86 +# define BOOST_HW_SIMD_NAME BOOST_HW_SIMD_X86_NAME +#endif + +#if defined(BOOST_HW_SIMD_ARM_AVAILABLE) +# define BOOST_HW_SIMD BOOST_HW_SIMD_ARM +# define BOOST_HW_SIMD_NAME BOOST_HW_SIMD_ARM_NAME +#endif + +#if defined(BOOST_HW_SIMD_PPC_AVAILABLE) +# define BOOST_HW_SIMD BOOST_HW_SIMD_PPC +# define BOOST_HW_SIMD_NAME BOOST_HW_SIMD_PPC_NAME +#endif + +#if defined(BOOST_HW_SIMD) +# define BOOST_HW_SIMD_AVAILABLE +#endif + #endif