SIMD extension detection and runtime selection for LALSuite.
Prototypes | |
int | XLALHaveSIMDInstructionSet (LAL_SIMD_ISET iset) |
Return true if the executing machine supports the given instruction set. More... | |
const char * | XLALSIMDInstructionSetName (LAL_SIMD_ISET iset) |
Return the name of a given instruction set as a string. More... | |
Enumerations | |
enum | LAL_SIMD_ISET { LAL_SIMD_ISET_GEN , LAL_SIMD_ISET_SSE , LAL_SIMD_ISET_SSE2 , LAL_SIMD_ISET_SSE3 , LAL_SIMD_ISET_SSSE3 , LAL_SIMD_ISET_SSE4_1 , LAL_SIMD_ISET_SSE4_2 , LAL_SIMD_ISET_AVX , LAL_SIMD_ISET_AVX2 , LAL_SIMD_ISET_MAX } |
SIMD instruction sets this module can detect. More... | |
Convenience macros for SIMD runtime selection | |
#define | LAL_HAVE_SSE_RUNTIME() (XLALHaveSIMDInstructionSet(LAL_SIMD_ISET_SSE)) |
#define | LAL_HAVE_SSE2_RUNTIME() (XLALHaveSIMDInstructionSet(LAL_SIMD_ISET_SSE2)) |
#define | LAL_HAVE_SSE3_RUNTIME() (XLALHaveSIMDInstructionSet(LAL_SIMD_ISET_SSE3)) |
#define | LAL_HAVE_SSSE3_RUNTIME() (XLALHaveSIMDInstructionSet(LAL_SIMD_ISET_SSSE3)) |
#define | LAL_HAVE_SSE4_1_RUNTIME() (XLALHaveSIMDInstructionSet(LAL_SIMD_ISET_SSE4_1)) |
#define | LAL_HAVE_SSE4_2_RUNTIME() (XLALHaveSIMDInstructionSet(LAL_SIMD_ISET_SSE4_2)) |
#define | LAL_HAVE_AVX_RUNTIME() (XLALHaveSIMDInstructionSet(LAL_SIMD_ISET_AVX)) |
#define | LAL_HAVE_AVX2_RUNTIME() (XLALHaveSIMDInstructionSet(LAL_SIMD_ISET_AVX2)) |
int XLALHaveSIMDInstructionSet | ( | LAL_SIMD_ISET | iset | ) |
const char * XLALSIMDInstructionSetName | ( | LAL_SIMD_ISET | iset | ) |
enum LAL_SIMD_ISET |
SIMD instruction sets this module can detect.
Enumerator | |
---|---|
LAL_SIMD_ISET_GEN | GENeric floating-point unit. |
LAL_SIMD_ISET_SSE | SSE (Streaming SIMD Extensions) |
LAL_SIMD_ISET_SSE2 | SSE version 2. |
LAL_SIMD_ISET_SSE3 | SSE version 3. |
LAL_SIMD_ISET_SSSE3 | Supplemental SSE version 3. |
LAL_SIMD_ISET_SSE4_1 | SSE version 4.1. |
LAL_SIMD_ISET_SSE4_2 | SSE version 4.2. |
LAL_SIMD_ISET_AVX | AVX (Advanced Vector Extensions) |
LAL_SIMD_ISET_AVX2 | AVX version 2. |
LAL_SIMD_ISET_MAX |
#define LAL_HAVE_SSE_RUNTIME | ( | ) | (XLALHaveSIMDInstructionSet(LAL_SIMD_ISET_SSE)) |
#define LAL_HAVE_SSE2_RUNTIME | ( | ) | (XLALHaveSIMDInstructionSet(LAL_SIMD_ISET_SSE2)) |
#define LAL_HAVE_SSE3_RUNTIME | ( | ) | (XLALHaveSIMDInstructionSet(LAL_SIMD_ISET_SSE3)) |
#define LAL_HAVE_SSSE3_RUNTIME | ( | ) | (XLALHaveSIMDInstructionSet(LAL_SIMD_ISET_SSSE3)) |
#define LAL_HAVE_SSE4_1_RUNTIME | ( | ) | (XLALHaveSIMDInstructionSet(LAL_SIMD_ISET_SSE4_1)) |
#define LAL_HAVE_SSE4_2_RUNTIME | ( | ) | (XLALHaveSIMDInstructionSet(LAL_SIMD_ISET_SSE4_2)) |
#define LAL_HAVE_AVX_RUNTIME | ( | ) | (XLALHaveSIMDInstructionSet(LAL_SIMD_ISET_AVX)) |
#define LAL_HAVE_AVX2_RUNTIME | ( | ) | (XLALHaveSIMDInstructionSet(LAL_SIMD_ISET_AVX2)) |