35 #ifndef _BLAZE_UTIL_TYPETRAITS_ISVECTORIZABLE_H_ 36 #define _BLAZE_UTIL_TYPETRAITS_ISVECTORIZABLE_H_ 64 template<
typename T >
65 struct IsVectorizableHelper
69 template<
typename BT >
70 struct Builtin {
using Type = BT ; };
74 template<
typename CT >
75 struct Complex {
using Type =
typename CT::value_type; };
79 using T2 =
typename If_t< IsComplex_v<T>, Complex<T>, Builtin<T> >::Type;
84 static constexpr
bool value = ( ( bool(
BLAZE_SSE_MODE ) && IsFloat_v<T2> ) ||
88 && IsNumeric_v<T2> &&
sizeof(T2) >= 4UL ) );
101 struct IsVectorizableHelper<void>
105 static constexpr
bool value =
false;
134 template<
typename T >
136 :
public BoolConstant< IsVectorizableHelper< RemoveCV_t<T> >::value >
154 template<
typename T >
Compile time check for vectorizable types.Depending on the available instruction set (SSE,...
Definition: IsVectorizable.h:135
#define BLAZE_AVX512F_MODE
Compilation switch for the AVX512F mode.This compilation switch enables/disables the AVX512F mode....
Definition: Vectorization.h:246
Header file for the RemoveCV type trait.
Generic wrapper for a compile time constant integral value.The IntegralConstant class template repres...
Definition: IntegralConstant.h:72
#define BLAZE_MIC_MODE
Compilation switch for the MIC mode.This compilation switch enables/disables the MIC mode....
Definition: Vectorization.h:299
#define BLAZE_AVX512BW_MODE
Compilation switch for the AVX512BW mode.This compilation switch enables/disables the AVX512BW mode....
Definition: Vectorization.h:264
Header file for the IsFloat type trait.
Namespace of the Blaze C++ math library.
Definition: Blaze.h:58
Header file for the If class template.
#define BLAZE_SSE_MODE
Compilation switch for the SSE mode.This compilation switch enables/disables the SSE mode....
Definition: Vectorization.h:126
Header file for the IsNumeric type trait.
constexpr bool IsVectorizable_v
Auxiliary variable template for the IsVectorizable type trait.The IsVectorizable_v variable template ...
Definition: IsVectorizable.h:155
Header file for the IsComplex type trait.
System settings for the SSE mode.
#define BLAZE_SSE2_MODE
Compilation switch for the SSE2 mode.This compilation switch enables/disables the SSE2 mode....
Definition: Vectorization.h:143