35 #ifndef _BLAZE_UTIL_TYPETRAITS_ISVECTORIZABLE_H_
36 #define _BLAZE_UTIL_TYPETRAITS_ISVECTORIZABLE_H_
67 template<
typename T >
68 struct IsVectorizableHelper
71 enum { value = (
BLAZE_SSE_MODE && ( IsFloat<T>::value || IsSame<complex<float>,T>::value ) ) ||
72 (
BLAZE_SSE2_MODE && ( IsDouble<T>::value || IsSame<complex<double>,T>::value ) ) ||
74 (
BLAZE_MIC_MODE && ( IsIntegral<T>::value &&
sizeof(T) >= 4UL ) ) ||
75 (
BLAZE_MIC_MODE && ( IsFloat<T>::value || IsSame<complex<float>,T>::value ) ) ||
76 (
BLAZE_MIC_MODE && ( IsDouble<T>::value || IsSame<complex<double>,T>::value ) ) };
77 typedef typename SelectType<value,TrueType,FalseType>::Type Type;
106 template<
typename T >
112 enum { value = IsVectorizableHelper<T>::value };
113 typedef typename IsVectorizableHelper<T>::Type Type;
Compile time check for vectorizable types.Depending on the available instruction set (SSE...
Definition: IsVectorizable.h:107
Header file for the FalseType type/value trait base class.
#define BLAZE_MIC_MODE
Compilation switch for the MIC mode.This compilation switch enables/disables the MIC mode...
Definition: Vectorization.h:185
Header file for the IsSame and IsStrictlySame type traits.
Header file for the IsIntegral type trait.
Header file for the IsFloat type trait.
Header file for the IsDouble type trait.
#define BLAZE_SSE_MODE
Compilation switch for the SSE mode.This compilation switch enables/disables the SSE mode...
Definition: Vectorization.h:66
Header file for the SelectType class template.
System settings for the SSE mode.
Header file for the complex data type.
#define BLAZE_SSE2_MODE
Compilation switch for the SSE2 mode.This compilation switch enables/disables the SSE2 mode...
Definition: Vectorization.h:83
Header file for the TrueType type/value trait base class.