IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
Avx512Types.h
Go to the documentation of this file.
1 // Avx512Types.h:
3 // ------------
4 //
14 
15 #ifndef __IPSDKUTIL_INSTRUCTIONSET_AVX512TYPES_H__
16 #define __IPSDKUTIL_INSTRUCTIONSET_AVX512TYPES_H__
17 
18 #include <IPSDKUtil/BaseTypes.h>
19 #include <xmmintrin.h>
20 #include <emmintrin.h>
21 
22 #if defined __linux__
23 #include <immintrin.h>
24 #endif
25 
26 namespace ipsdk {
27 
30 
35 template <typename T, typename Enable=void>
36 struct Avx512Type
37 {
38 };
39 
42 #define IPSDK_DATATYPE_TO_AVX512_TYPE(DataType, Avx512TypeT) \
43  template<> struct Avx512Type<DataType> { \
44  typedef Avx512TypeT Type; \
45  };
46 
49 
50 #if (defined IPSDK_WITH_AVX512)
51 template<typename T>
52 struct Avx512Type<
53  T,
54  typename boost::enable_if_c<boost::is_integral<T>::value>::type>
55 {
56  typedef __m512i Type;
57 };
58 
61 #endif
62 
64 
67 
68 } // end of namespace ipsdk
69 
70 #endif // __IPSDKUTIL_INSTRUCTIONSET_AVX512TYPES_H__
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
double ipReal64
Base types definition.
Definition: BaseTypes.h:57
#define IPSDK_DATATYPE_TO_AVX512_TYPE(DataType, Avx512TypeT)
Definition: Avx512Types.h:42
Definition: DataItemNodeHdrMacrosDetails.h:48
Base types for multiplatform compatibility.
float ipReal32
Base types definition.
Definition: BaseTypes.h:56
structure used to retrieve AVX512 type associated to a base type
Definition: Avx512Types.h:36