IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
RegType.h
Go to the documentation of this file.
1 // RegType.h:
3 // ------------
4 //
14 
15 #ifndef __IPSDKUTIL_INSTRUCTIONSET_REGTYPE_H__
16 #define __IPSDKUTIL_INSTRUCTIONSET_REGTYPE_H__
17 
20 
24 
25 namespace ipsdk {
26 namespace simd {
27 
28 template <eInstructionSet::domain is, typename T>
29 struct RegType
30 {
31 
32 };
33 
34 template <typename T>
36 {
37  typedef T Type;
38 };
39 
40 #ifdef IPSDK_WITH_SSE2
41 template <typename T>
43 {
44  typedef typename Sse2Type<T>::Type Type;
45 };
46 #endif
47 
48 #ifdef IPSDK_WITH_AVX
49 template <typename T>
50 struct RegType<eInstructionSet::eIS_Avx, T>
51 {
52  typedef typename AvxType<T>::Type Type;
53 };
54 #endif
55 
56 #ifdef IPSDK_WITH_AVX2
57 template <typename T>
58 struct RegType<eInstructionSet::eIS_Avx2, T>
59 {
60  typedef typename AvxType<T>::Type Type;
61 };
62 #endif
63 
64 #ifdef IPSDK_WITH_FMA3
65 template <typename T>
66 struct RegType<eInstructionSet::eIS_Fma3, T>
67 {
68  typedef typename AvxType<T>::Type Type;
69 };
70 #endif
71 
72 #ifdef IPSDK_WITH_AVX512
73 template <typename T>
74 struct RegType<eInstructionSet::eIS_Avx512, T>
75 {
76  typedef typename Avx512Type<T>::Type Type;
77 };
78 
79 #endif
80 
81 }
82 }
83 
84 #endif // __IPSDKUTIL_INSTRUCTIONSET_REGTYPE_H__
Fused multiply–add.
Definition: InstructionSetTypes.h:46
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
(including fundation and byte and word instructions)
Definition: InstructionSetTypes.h:51
Predefined types for Avx instruction set management.
eInstructionSet
Enumerate for processor instruction set description.
Definition: InstructionSetTypes.h:31
Advanced Vector Extensions.
Definition: InstructionSetTypes.h:44
Predefined types for Avx512 instruction set management.
Advanced Vector Extensions 2.
Definition: InstructionSetTypes.h:48
Predefined types for Sse2 instruction set management.
Predefined types associated to instruction set management.
Definition of import/export macro for library.
structure used to retrieve AVX type associated to a base type
Definition: AvxTypes.h:33
Streaming SIMD Extensions 2.
Definition: InstructionSetTypes.h:36
compiler optimisations only
Definition: InstructionSetTypes.h:34
structure used to retrieve SSE2 type associated to a base type
Definition: Sse2Types.h:32
Definition: RegType.h:29