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)) |