35 #ifndef _BLAZE_SYSTEM_VECTORIZATION_H_
36 #define _BLAZE_SYSTEM_VECTORIZATION_H_
57 #ifdef BLAZE_ENFORCE_AVX2
58 # ifndef BLAZE_ENFORCE_AVX
59 # define BLAZE_ENFORCE_AVX
79 #ifdef BLAZE_ENFORCE_AVX
126 #if BLAZE_USE_VECTORIZATION && ( defined(__SSE__) || ( _M_IX86_FP > 0 ) )
127 # define BLAZE_SSE_MODE 1
129 # define BLAZE_SSE_MODE 0
143 #if BLAZE_USE_VECTORIZATION && ( defined(__SSE2__) || ( _M_IX86_FP > 1 ) )
144 # define BLAZE_SSE2_MODE 1
146 # define BLAZE_SSE2_MODE 0
160 #if BLAZE_USE_VECTORIZATION && defined(__SSE3__)
161 # define BLAZE_SSE3_MODE 1
163 # define BLAZE_SSE3_MODE 0
177 #if BLAZE_USE_VECTORIZATION && defined(__SSSE3__)
178 # define BLAZE_SSSE3_MODE 1
180 # define BLAZE_SSSE3_MODE 0
194 #if BLAZE_USE_VECTORIZATION && ( defined(__SSE4_2__) || defined(__SSE4_1__) )
195 # define BLAZE_SSE4_MODE 1
197 # define BLAZE_SSE4_MODE 0
211 #if BLAZE_USE_VECTORIZATION && defined(__AVX__)
212 # define BLAZE_AVX_MODE 1
214 # define BLAZE_AVX_MODE 0
228 #if BLAZE_USE_VECTORIZATION && defined(__AVX2__)
229 # define BLAZE_AVX2_MODE 1
231 # define BLAZE_AVX2_MODE 0
245 #if BLAZE_USE_VECTORIZATION && defined(__MIC__)
246 # define BLAZE_MIC_MODE 1
248 # define BLAZE_MIC_MODE 0
270 #if BLAZE_USE_VECTORIZATION && defined(__FMA__)
271 # define BLAZE_FMA_MODE 1
273 # define BLAZE_FMA_MODE 0
295 #if BLAZE_USE_VECTORIZATION && ( defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC) )
296 # define BLAZE_SVML_MODE 1
298 # define BLAZE_SVML_MODE 0
335 #if BLAZE_MIC_MODE || BLAZE_AVX_MODE || BLAZE_AVX2_MODE
336 # include <immintrin.h>
337 #elif BLAZE_SSE4_MODE
338 # include <smmintrin.h>
339 #elif BLAZE_SSSE3_MODE
340 # include <tmmintrin.h>
341 #elif BLAZE_SSE3_MODE
342 # include <pmmintrin.h>
343 #elif BLAZE_SSE2_MODE
344 # include <emmintrin.h>
346 # include <xmmintrin.h>
#define BLAZE_AVX2_MODE
Compilation switch for the AVX2 mode.This compilation switch enables/disables the AVX2 mode...
Definition: Vectorization.h:231
#define BLAZE_SSE3_MODE
Compilation switch for the SSE3 mode.This compilation switch enables/disables the SSE3 mode...
Definition: Vectorization.h:163
#define BLAZE_SSSE3_MODE
Compilation switch for the SSSE3 mode.This compilation switch enables/disables the SSSE3 mode...
Definition: Vectorization.h:180
#define BLAZE_SSE_MODE
Compilation switch for the SSE mode.This compilation switch enables/disables the SSE mode...
Definition: Vectorization.h:129
#define BLAZE_SSE4_MODE
Compilation switch for the SSE4 mode.This compilation switch enables/disables the SSE4 mode...
Definition: Vectorization.h:197
#define BLAZE_AVX_MODE
Compilation switch for the AVX mode.This compilation switch enables/disables the AVX mode...
Definition: Vectorization.h:214
Configuration of the vectorization policy of the Blaze library.
#define BLAZE_SSE2_MODE
Compilation switch for the SSE2 mode.This compilation switch enables/disables the SSE2 mode...
Definition: Vectorization.h:146
#define BLAZE_STATIC_ASSERT(expr)
Compile time assertion macro.In case of an invalid compile time expression, a compilation error is cr...
Definition: StaticAssert.h:112