IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
AvxMaskTypes.h
Go to the documentation of this file.
1 // AvxMaskTypes.h:
3 // ------------
4 //
14 
15 #ifndef __IPSDKUTIL_INSTRUCTIONSET_AVXMASKTYPES_H__
16 #define __IPSDKUTIL_INSTRUCTIONSET_AVXMASKTYPES_H__
17 
18 #include <IPSDKUtil/BaseTypes.h>
19 #include <xmmintrin.h>
20 #include <emmintrin.h>
21 #include <immintrin.h>
22 
23 namespace ipsdk {
24 
27 
32 template <typename T, typename Enable=void>
34 {
35 };
36 
39 #define IPSDK_DATATYPE_TO_AVX_MASK_TYPE(DataType, AvxTypeT) \
40  template<> struct AvxMaskType<DataType> { \
41  typedef AvxTypeT Type; \
42  };
43 
46 
47 #if (defined IPSDK_WITH_AVX || defined IPSDK_WITH_AVX2)
48 template<typename T>
49 struct AvxMaskType<T, typename boost::enable_if_c<boost::is_integral<T>::value>::type>
50 {
51  typedef __m256i Type;
52 };
53 
56 #endif
57 
59 
62 
63 } // end of namespace ipsdk
64 
65 #endif // __IPSDKUTIL_INSTRUCTIONSET_AVXMASKTYPES_H__
structure used to retrieve AVX mask type associated to a base type
Definition: AvxMaskTypes.h:33
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
double ipReal64
Base types definition.
Definition: BaseTypes.h:57
Definition: DataItemNodeHdrMacrosDetails.h:48
Base types for multiplatform compatibility.
#define IPSDK_DATATYPE_TO_AVX_MASK_TYPE(DataType, AvxTypeT)
Definition: AvxMaskTypes.h:39
float ipReal32
Base types definition.
Definition: BaseTypes.h:56