Use include_sse2neon.h in gcore/overview functionality

This commit is contained in:
Even Rouault 2024-03-17 02:41:53 +01:00
parent 6fa1a8e6dc
commit d922dc5763
No known key found for this signature in database
GPG Key ID: 33EBBFC47B3DD87D
2 changed files with 15 additions and 4 deletions

View File

@ -23,13 +23,18 @@
#if (defined(__x86_64) || defined(_M_X64) || defined(USE_SSE2)) && \
!defined(USE_SSE2_EMULATION)
#include <string.h>
#ifdef USE_NEON_OPTIMIZATIONS
#include "include_sse2neon.h"
#else
/* Requires SSE2 */
#include <emmintrin.h>
#include <string.h>
#ifdef __SSE4_1__
#include <smmintrin.h>
#endif
#endif
#include "gdal_priv_templates.hpp"

View File

@ -36,9 +36,15 @@
#include "gdal_thread_pool.h"
#include "gdalwarper.h"
#ifdef USE_NEON_OPTIMIZATIONS
#include "include_sse2neon.h"
#define USE_SSE2
#include "gdalsse_priv.h"
// Restrict to 64bit processors because they are guaranteed to have SSE2,
// or if __AVX2__ is defined.
#if defined(__x86_64) || defined(_M_X64) || defined(__AVX2__)
#elif defined(__x86_64) || defined(_M_X64) || defined(__AVX2__)
#define USE_SSE2
#include "gdalsse_priv.h"
@ -335,7 +341,7 @@ inline GUInt16 ComputeIntegerRMS_4values<GUInt16, double>(double sumSquares)
/* QuadraticMeanByteSSE2OrAVX2() */
/************************************************************************/
#ifdef __SSE4_1__
#if defined(__SSE4_1__) || defined(USE_NEON_OPTIMIZATIONS)
#define sse2_packus_epi32 _mm_packus_epi32
#else
inline __m128i sse2_packus_epi32(__m128i a, __m128i b)
@ -350,7 +356,7 @@ inline __m128i sse2_packus_epi32(__m128i a, __m128i b)
}
#endif
#ifdef __SSSE3__
#if defined(__SSSE3__) || defined(USE_NEON_OPTIMIZATIONS)
#define sse2_hadd_epi16 _mm_hadd_epi16
#else
inline __m128i sse2_hadd_epi16(__m128i a, __m128i b)