29#ifndef CPL_CPU_FEATURES_H
30#define CPL_CPU_FEATURES_H
37#ifdef HAVE_SSE_AT_COMPILE_TIME
38#if (defined(_M_X64) || defined(__x86_64))
39#define HAVE_INLINE_SSE
40static bool inline CPLHaveRuntimeSSE() {
return true; }
42bool CPLHaveRuntimeSSE();
46#ifdef HAVE_SSSE3_AT_COMPILE_TIME
48#define HAVE_INLINE_SSSE3
49static bool inline CPLHaveRuntimeSSSE3()
52 if( !CPLTestBool(CPLGetConfigOption(
"GDAL_USE_SSSE3",
"YES")) )
58#if defined(__GNUC__) && !defined(DEBUG)
59extern bool bCPLHasSSSE3;
60static bool inline CPLHaveRuntimeSSSE3() {
return bCPLHasSSSE3; }
62bool CPLHaveRuntimeSSSE3();
67#ifdef HAVE_AVX_AT_COMPILE_TIME
69#define HAVE_INLINE_AVX
70static bool inline CPLHaveRuntimeAVX() {
return true; }
71#elif defined(__GNUC__)
72extern bool bCPLHasAVX;
73static bool inline CPLHaveRuntimeAVX() {
return bCPLHasAVX; }
75bool CPLHaveRuntimeAVX();
Core portability definitions for CPL.
Various convenience functions for working with strings and string lists.