IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
PackTypes.h
Go to the documentation of this file.
1 // PackTypes.h:
3 // ------------
4 //
13 
14 #ifndef __IPSDKUTIL_INSTRUCTIONSET_PACKTYPES_H__
15 #define __IPSDKUTIL_INSTRUCTIONSET_PACKTYPES_H__
16 
18 #include <IPSDKUtil/Tools/Guid.h>
19 #include <boost/filesystem/path.hpp>
20 
21 #ifndef IPSDK_WINDOWS
22 #include <stdint.h>
23 #endif
24 
25 namespace ipsdk {
26 namespace simd {
27 
30 
34  (ePT_None)
36  (ePT_Sse)
38  (ePT_Avx512)
39 )
40 
41 template <eInstructionSet::domain is>
48 struct IS2PackType
49 {
50 };
51 
54 #define IPSDK_INSTRUCTIONSET_TO_PACKTYPE(InstructionSet, EnumValue) \
55  template<> struct IS2PackType<eInstructionSet::InstructionSet> { \
56  static const ipsdk::simd::ePackType::domain _packType = ipsdk::simd::ePackType::EnumValue; \
57  };
58 
68 
71 
72 } // end of namespace simd
73 } // end of namespace ipsdk
74 
75 #endif // __IPSDKUTIL_INSTRUCTIONSET_PACKTYPES_H__
Fused multiply–add.
Definition: InstructionSetTypes.h:46
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
packs of avx512 registers (ex.: Packs of __m512)
Definition: PackTypes.h:45
(including fundation and byte and word instructions)
Definition: InstructionSetTypes.h:51
eInstructionSet
Enumerate for processor instruction set description.
Definition: InstructionSetTypes.h:31
Advanced Vector Extensions.
Definition: InstructionSetTypes.h:44
ePackType
Enumerate describing a pack type.
Definition: PackTypes.h:35
Advanced Vector Extensions 2.
Definition: InstructionSetTypes.h:48
Definition: PackTypes.h:56
packs of scalars
Definition: PackTypes.h:39
invalid type
Definition: PackTypes.h:37
packs of avx/avx2 registers (ex.: Packs of __m256i)
Definition: PackTypes.h:43
Streaming SIMD Extensions 2.
Definition: InstructionSetTypes.h:36
Predefined macros for enumerates management.
compiler optimisations only
Definition: InstructionSetTypes.h:34
#define IPSDK_ENUM(enumTypeStr, enumSeq)
macro allowing to declare an enumerate for library
Definition: EnumMacros.h:26
IPSDK_INSTRUCTIONSET_TO_PACKTYPE(eIS_Standard, ePT_Scalar)
packs of sse/sse2 registers (ex.: Packs of __m128i)
Definition: PackTypes.h:41