35 #ifndef _BLAZE_UTIL_TYPETRAITS_ALIGNMENTOF_H_ 36 #define _BLAZE_UTIL_TYPETRAITS_ALIGNMENTOF_H_ 43 #include <type_traits> 62 template<
typename T >
63 struct AlignmentOfHelper
67 static constexpr
size_t defaultAlignment = std::alignment_of<T>::value;
73 #if BLAZE_AVX512BW_MODE 74 value = ( IsVectorizable<T>::value )?( 64UL ):( defaultAlignment )
76 value = ( IsVectorizable<T>::value )?(
sizeof(T) >= 4UL ? 64UL : 32UL ):( defaultAlignment )
78 value = ( IsVectorizable<T>::value )?( 32UL ):( defaultAlignment )
80 value = ( IsVectorizable<T>::value )?( 16UL ):( defaultAlignment )
82 value = defaultAlignment
97 struct AlignmentOfHelper<float>
102 #if BLAZE_AVX512F_MODE || BLAZE_MIC_MODE 109 value = std::alignment_of<float>::value
124 struct AlignmentOfHelper<double>
129 #if BLAZE_AVX512F_MODE || BLAZE_MIC_MODE 133 #elif BLAZE_SSE2_MODE 136 value = std::alignment_of<double>::value
151 struct AlignmentOfHelper< complex<float> >
156 #if BLAZE_AVX512F_MODE || BLAZE_MIC_MODE 163 value = std::alignment_of< complex<float> >::value
178 struct AlignmentOfHelper< complex<double> >
183 #if BLAZE_AVX512F_MODE || BLAZE_MIC_MODE 187 #elif BLAZE_SSE2_MODE 190 value = std::alignment_of< complex<double> >::value
218 template<
typename T >
230 template<
typename T >
243 template<
typename T >
256 template<
typename T >
#define BLAZE_AVX512F_MODE
Compilation switch for the AVX512F mode.This compilation switch enables/disables the AVX512F mode...
Definition: Vectorization.h:246
Generic wrapper for a compile time constant integral value.The IntegralConstant class template repres...
Definition: IntegralConstant.h:71
#define BLAZE_MIC_MODE
Compilation switch for the MIC mode.This compilation switch enables/disables the MIC mode...
Definition: Vectorization.h:299
#define BLAZE_AVX2_MODE
Compilation switch for the AVX2 mode.This compilation switch enables/disables the AVX2 mode...
Definition: Vectorization.h:228
Namespace of the Blaze C++ math library.
Definition: Blaze.h:57
Header file for the IsVectorizable type trait.
System settings for the SSE mode.
Header file for the complex data type.
Evaluation of the required alignment of the given data type.The AlignmentOf type trait template evalu...
Definition: AlignmentOf.h:219