23#if defined(__cplusplus)
47typedef enum tagLAL_SIMD_ISET {
74#define LAL_HAVE_SSE_RUNTIME() (XLALHaveSIMDInstructionSet(LAL_SIMD_ISET_SSE))
75#define LAL_HAVE_SSE2_RUNTIME() (XLALHaveSIMDInstructionSet(LAL_SIMD_ISET_SSE2))
76#define LAL_HAVE_SSE3_RUNTIME() (XLALHaveSIMDInstructionSet(LAL_SIMD_ISET_SSE3))
77#define LAL_HAVE_SSSE3_RUNTIME() (XLALHaveSIMDInstructionSet(LAL_SIMD_ISET_SSSE3))
78#define LAL_HAVE_SSE4_1_RUNTIME() (XLALHaveSIMDInstructionSet(LAL_SIMD_ISET_SSE4_1))
79#define LAL_HAVE_SSE4_2_RUNTIME() (XLALHaveSIMDInstructionSet(LAL_SIMD_ISET_SSE4_2))
80#define LAL_HAVE_AVX_RUNTIME() (XLALHaveSIMDInstructionSet(LAL_SIMD_ISET_AVX))
81#define LAL_HAVE_AVX2_RUNTIME() (XLALHaveSIMDInstructionSet(LAL_SIMD_ISET_AVX2))
86#if defined(__cplusplus)
int XLALHaveSIMDInstructionSet(LAL_SIMD_ISET iset)
Return true if the executing machine supports the given instruction set.
LAL_SIMD_ISET
SIMD instruction sets this module can detect.
const char * XLALSIMDInstructionSetName(LAL_SIMD_ISET iset)
Return the name of a given instruction set as a string.
@ LAL_SIMD_ISET_SSE4_1
SSE version 4.1.
@ LAL_SIMD_ISET_SSE3
SSE version 3.
@ LAL_SIMD_ISET_SSE
SSE (Streaming SIMD Extensions)
@ LAL_SIMD_ISET_AVX2
AVX version 2.
@ LAL_SIMD_ISET_SSE4_2
SSE version 4.2.
@ LAL_SIMD_ISET_SSE2
SSE version 2.
@ LAL_SIMD_ISET_GEN
GENeric floating-point unit.
@ LAL_SIMD_ISET_AVX
AVX (Advanced Vector Extensions)
@ LAL_SIMD_ISET_SSSE3
Supplemental SSE version 3.