IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
Avx512MaskTypes.h
Go to the documentation of this file.
1 // Avx512MaskTypes.h:
3 // ------------
4 //
14 
15 #ifndef __IPSDKUTIL_INSTRUCTIONSET_AVX512MASKTYPES_H__
16 #define __IPSDKUTIL_INSTRUCTIONSET_AVX512MASKTYPES_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>
37 {
38 };
39 
42 #define IPSDK_DATATYPE_TO_AVX512_MASKTYPE(DataType, Avx512TypeT) \
43 template<> struct Avx512MaskType<DataType> { \
44  typedef Avx512TypeT Type; \
45 };
46 
49 
50 #if (defined IPSDK_WITH_AVX512)
51 IPSDK_DATATYPE_TO_AVX512_MASKTYPE(ipInt8, __mmask64);
52 IPSDK_DATATYPE_TO_AVX512_MASKTYPE(ipUInt8, __mmask64);
53 IPSDK_DATATYPE_TO_AVX512_MASKTYPE(ipInt16, __mmask32);
54 IPSDK_DATATYPE_TO_AVX512_MASKTYPE(ipUInt16, __mmask32);
55 IPSDK_DATATYPE_TO_AVX512_MASKTYPE(ipInt32, __mmask16);
56 IPSDK_DATATYPE_TO_AVX512_MASKTYPE(ipUInt32, __mmask16);
57 IPSDK_DATATYPE_TO_AVX512_MASKTYPE(ipInt64, __mmask8);
58 IPSDK_DATATYPE_TO_AVX512_MASKTYPE(ipUInt64, __mmask8);
59 IPSDK_DATATYPE_TO_AVX512_MASKTYPE(ipReal32, __mmask16);
60 IPSDK_DATATYPE_TO_AVX512_MASKTYPE(ipReal64, __mmask8);
61 #endif
62 
64 
67 
68 } // end of namespace ipsdk
69 
70 #endif // __IPSDKUTIL_INSTRUCTIONSET_AVX512MASKTYPES_H__
int8_t ipInt8
Base types definition.
Definition: BaseTypes.h:48
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
uint64_t ipUInt64
Base types definition.
Definition: BaseTypes.h:55
double ipReal64
Base types definition.
Definition: BaseTypes.h:57
int32_t ipInt32
Base types definition.
Definition: BaseTypes.h:52
int16_t ipInt16
Base types definition.
Definition: BaseTypes.h:50
uint8_t ipUInt8
Base types definition.
Definition: BaseTypes.h:49
Base types for multiplatform compatibility.
Definition: Avx512MaskTypes.h:36
int64_t ipInt64
Base types definition.
Definition: BaseTypes.h:54
uint16_t ipUInt16
Base types definition.
Definition: BaseTypes.h:51
float ipReal32
Base types definition.
Definition: BaseTypes.h:56
uint32_t ipUInt32
Base types definition.
Definition: BaseTypes.h:53