Loading [MathJax]/extensions/TeX/AMSsymbols.js
 |
LAL 7.7.0.1-00ddc7f
|
|
Go to the documentation of this file.
20#if !defined(HAVE_SIMD_COMPILER)
21#error "simd_dispatch.h must be included after config.h"
24#include <lal/LALSIMD.h>
25#include <lal/XLALError.h>
53#define DISPATCH_SELECT_BEGIN() do { do { } while(0)
54#define DISPATCH_SELECT_END(...) (__VA_ARGS__); } while (0)
55#define DISPATCH_SELECT_NONE(...) do { } while(0)
57#if defined(HAVE_SSE_COMPILER)
58#define DISPATCH_SELECT_SSE(...) if (LAL_HAVE_SSE_RUNTIME()) { (__VA_ARGS__); break; } do { } while(0)
60#define DISPATCH_SELECT_SSE(...) DISPATCH_SELECT_NONE()
63#if defined(HAVE_SSE2_COMPILER)
64#define DISPATCH_SELECT_SSE2(...) if (LAL_HAVE_SSE2_RUNTIME()) { (__VA_ARGS__); break; } do { } while(0)
66#define DISPATCH_SELECT_SSE2(...) DISPATCH_SELECT_NONE()
69#if defined(HAVE_SSE3_COMPILER)
70#define DISPATCH_SELECT_SSE3(...) if (LAL_HAVE_SSE3_RUNTIME()) { (__VA_ARGS__); break; } do { } while(0)
72#define DISPATCH_SELECT_SSE3(...) DISPATCH_SELECT_NONE()
75#if defined(HAVE_SSSE3_COMPILER)
76#define DISPATCH_SELECT_SSSE3(...) if (LAL_HAVE_SSSE3_RUNTIME()) { (__VA_ARGS__); break; } do { } while(0)
78#define DISPATCH_SELECT_SSSE3(...) DISPATCH_SELECT_NONE()
81#if defined(HAVE_SSE4_1_COMPILER)
82#define DISPATCH_SELECT_SSE4_1(...) if (LAL_HAVE_SSE4_1_RUNTIME()) { (__VA_ARGS__); break; } do { } while(0)
84#define DISPATCH_SELECT_SSE4_1(...) DISPATCH_SELECT_NONE()
87#if defined(HAVE_SSE4_2_COMPILER)
88#define DISPATCH_SELECT_SSE4_2(...) if (LAL_HAVE_SSE4_2_RUNTIME()) { (__VA_ARGS__); break; } do { } while(0)
90#define DISPATCH_SELECT_SSE4_2(...) DISPATCH_SELECT_NONE()
93#if defined(HAVE_AVX_COMPILER)
94#define DISPATCH_SELECT_AVX(...) if (LAL_HAVE_AVX_RUNTIME()) { (__VA_ARGS__); break; } do { } while(0)
96#define DISPATCH_SELECT_AVX(...) DISPATCH_SELECT_NONE()
99#if defined(HAVE_AVX2_COMPILER)
100#define DISPATCH_SELECT_AVX2(...) if (LAL_HAVE_AVX2_RUNTIME()) { (__VA_ARGS__); break; } do { } while(0)
102#define DISPATCH_SELECT_AVX2(...) DISPATCH_SELECT_NONE()