From 8f5fcf9bdfdf65d12b5701d8891d9860baf79179 Mon Sep 17 00:00:00 2001 From: Charly Chevalier Date: Tue, 8 Dec 2015 10:12:23 +0100 Subject: [PATCH 1/3] Fix typo in SIMD predefs ocumentation (x86 -> X86) --- include/boost/predef/hardware/simd/x86.h | 2 +- include/boost/predef/hardware/simd/x86_amd.h | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/include/boost/predef/hardware/simd/x86.h b/include/boost/predef/hardware/simd/x86.h index 0874bc4..b11d571 100644 --- a/include/boost/predef/hardware/simd/x86.h +++ b/include/boost/predef/hardware/simd/x86.h @@ -67,7 +67,7 @@ http://www.boost.org/LICENSE_1_0.txt) [[`__FMA__`] [BOOST_HW_SIMD_X86_FMA3_VERSION]] - [[`__AVX2__`] [BOOST_HW_SIMD_x86_AVX2_VERSION]] + [[`__AVX2__`] [BOOST_HW_SIMD_X86_AVX2_VERSION]] ] */ diff --git a/include/boost/predef/hardware/simd/x86_amd.h b/include/boost/predef/hardware/simd/x86_amd.h index 60fd448..c80d1ce 100644 --- a/include/boost/predef/hardware/simd/x86_amd.h +++ b/include/boost/predef/hardware/simd/x86_amd.h @@ -33,13 +33,13 @@ http://www.boost.org/LICENSE_1_0.txt) [table [[__predef_symbol__] [__predef_version__]] - [[`__SSE4A__`] [BOOST_HW_SIMD_x86_SSE4A_VERSION]] + [[`__SSE4A__`] [BOOST_HW_SIMD_X86_SSE4A_VERSION]] - [[`__FMA4__`] [BOOST_HW_SIMD_x86_FMA4_VERSION]] + [[`__FMA4__`] [BOOST_HW_SIMD_X86_FMA4_VERSION]] - [[`__XOP__`] [BOOST_HW_SIMD_x86_XOP_VERSION]] + [[`__XOP__`] [BOOST_HW_SIMD_X86_XOP_VERSION]] - [[`BOOST_HW_SIMD_X86`] [BOOST_HW_SIMD_x86]] + [[`BOOST_HW_SIMD_X86`] [BOOST_HW_SIMD_X86]] ] [note This predef includes every other x86 SIMD extensions and also has other From 1b27540a96a0014d60971379d046b876f99273e5 Mon Sep 17 00:00:00 2001 From: Charly Chevalier Date: Tue, 8 Dec 2015 10:40:33 +0100 Subject: [PATCH 2/3] Fix redefinition of BOOST_HW_SIMD for x86 (AMD) --- include/boost/predef/hardware/simd.h | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/include/boost/predef/hardware/simd.h b/include/boost/predef/hardware/simd.h index 4de1e70..ac5c9da 100644 --- a/include/boost/predef/hardware/simd.h +++ b/include/boost/predef/hardware/simd.h @@ -77,12 +77,24 @@ http://www.boost.org/LICENSE_1_0.txt) # error "Multiple SIMD architectures detected, this cannot happen!" #endif -#if defined(BOOST_HW_SIMD_X86_AVAILABLE) -# define BOOST_HW_SIMD BOOST_HW_SIMD_X86 +#if defined(BOOST_HW_SIMD_X86_AVAILABLE) && defined(BOOST_HW_SIMD_X86_AMD_AVAILABLE) + // If both standard _X86 and _X86_AMD are available, + // then take the biggest version of the two! +# if BOOST_HW_SIMD_X86 >= BOOST_HW_SIMD_X86_AMD +# define BOOST_HW_SIMD BOOST_HW_SIMD_X86 +# else +# define BOOST_HW_SIMD BOOST_HW_SIMD_X86_AMD +# endif #endif -#if defined(BOOST_HW_SIMD_X86_AMD_AVAILABLE) -# define BOOST_HW_SIMD BOOST_HW_SIMD_X86_AMD +#if !defined(BOOST_HW_SIMD) + // At this point, only one of these two is defined +# if defined(BOOST_HW_SIMD_X86_AVAILABLE) +# define BOOST_HW_SIMD BOOST_HW_SIMD_X86 +# endif +# if defined(BOOST_HW_SIMD_X86_AMD_AVAILABLE) +# define BOOST_HW_SIMD BOOST_HW_SIMD_X86_AMD +# endif #endif #if defined(BOOST_HW_SIMD_ARM_AVAILABLE) From c4bebf10efa9322c732ffe27e3ea8e8ceb569aad Mon Sep 17 00:00:00 2001 From: Charly Chevalier Date: Tue, 8 Dec 2015 11:01:03 +0100 Subject: [PATCH 3/3] Fix SIMD documentation for FMA4 --- include/boost/predef/hardware/simd/x86_amd/versions.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/boost/predef/hardware/simd/x86_amd/versions.h b/include/boost/predef/hardware/simd/x86_amd/versions.h index a0a9e91..1115716 100644 --- a/include/boost/predef/hardware/simd/x86_amd/versions.h +++ b/include/boost/predef/hardware/simd/x86_amd/versions.h @@ -30,9 +30,9 @@ http://www.boost.org/LICENSE_1_0.txt) #define BOOST_HW_SIMD_X86_AMD_SSE4A_VERSION BOOST_VERSION_NUMBER(4, 0, 0) /*` - [heading `BOOST_HW_SIMD_X86_XOP_VERSION`] + [heading `BOOST_HW_SIMD_X86_FMA4_VERSION`] - [@https://en.wikipedia.org/wiki/XOP_instruction_set XOP] x86 extension (AMD specific). + [@https://en.wikipedia.org/wiki/FMA_instruction_set#FMA4_instruction_set FMA4] x86 extension (AMD specific). Version number is: *5.1.0*. */