23 #if defined(__cplusplus)
47 typedef 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)
const char * XLALSIMDInstructionSetName(LAL_SIMD_ISET iset)
Return the name of a given instruction set as a string.
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.
@ 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.