[Libreoffice-commits] core.git: include/tools sc/source
Tomaž Vajngerl (via logerrit)
logerrit at kemper.freedesktop.org
Thu Jul 18 00:29:49 UTC 2019
include/tools/simdsupport.hxx | 26 ++++++++++++++++++--------
sc/source/core/inc/arraysumfunctor.hxx | 8 --------
2 files changed, 18 insertions(+), 16 deletions(-)
New commits:
commit cd5a160f151ee789fb44bd8c07a10e3e291253fe
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
AuthorDate: Wed Jul 17 21:27:00 2019 +0900
Commit: Tomaž Vajngerl <quikee at gmail.com>
CommitDate: Thu Jul 18 02:28:54 2019 +0200
include supported SIMD intrinsics headers automatically
If we include simdsupport.hxx, this now includes the supported
intrinsics headers automatically, so this removes the need to do
it ourselves.
Change-Id: Icc406316a7e27b7b5fd5905f51664f4fe47e5468
Reviewed-on: https://gerrit.libreoffice.org/75783
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee at gmail.com>
diff --git a/include/tools/simdsupport.hxx b/include/tools/simdsupport.hxx
index 74afc9300b1a..4ef7a698089e 100644
--- a/include/tools/simdsupport.hxx
+++ b/include/tools/simdsupport.hxx
@@ -24,7 +24,7 @@
// SSE2 is required for X64
#if (defined(_M_X64) || defined(_M_IX86_FP) && _M_IX86_FP >= 2)
#define LO_SSE2_AVAILABLE
-#endif
+#endif // end SSE2
// compiled with /arch:AVX
#if defined(__AVX__)
@@ -33,30 +33,40 @@
#endif
#define LO_SSSE3_AVAILABLE
#define LO_AVX_AVAILABLE
-#endif
+#endif // defined(__AVX__)
// compiled with /arch:AVX2
#if defined(__AVX2__)
#define LO_AVX2_AVAILABLE
-#endif
+#endif // defined(__AVX2__)
-#else // Clang and GCC
+#else // compiler Clang and GCC
#if defined(__SSE2__) || defined(__x86_64__) // SSE2 is required for X64
#define LO_SSE2_AVAILABLE
-#endif
+#endif // defined(__SSE2__)
#if defined(__SSSE3__)
#define LO_SSSE3_AVAILABLE
-#endif
+#endif // defined(__SSSE3__)
+
#if defined(__AVX__)
#define LO_AVX_AVAILABLE
+#endif // defined(__AVX__)
-#endif
#if defined(__AVX2__)
#define LO_AVX2_AVAILABLE
-#endif
+#endif // defined(__AVX2__)
+
+#endif // end compiler Clang and GCC
+// If we detect any SIMD intrinsics, include the headers automatically
+#if defined(LO_SSE2_AVAILABLE)
+#include <emmintrin.h>
+#elif defined(LO_SSSE3_AVAILABLE)
+#include <tmmintrin.h>
+#elif defined(LO_AVX_AVAILABLE) || defined(LO_AVX2_AVAILABLE)
+#include <immintrin.h>
#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/core/inc/arraysumfunctor.hxx b/sc/source/core/inc/arraysumfunctor.hxx
index b4da4d9d4064..7ef8a7face05 100644
--- a/sc/source/core/inc/arraysumfunctor.hxx
+++ b/sc/source/core/inc/arraysumfunctor.hxx
@@ -18,14 +18,6 @@
#include <tools/simd.hxx>
#include <tools/cpuid.hxx>
-#if defined(LO_SSE2_AVAILABLE)
-#ifdef _WIN32
-#include <intrin.h>
-#else
-#include <x86intrin.h>
-#endif
-#endif
-
namespace sc
{
More information about the Libreoffice-commits
mailing list