IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
MaxRegDecl.h
Go to the documentation of this file.
1 // MaxRegDecl.h:
3 // -------------------
4 //
14 
15 #ifndef __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_DETAIL_AVX512_MAXREGDECL_H__
16 #define __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_DETAIL_AVX512_MAXREGDECL_H__
17 
22 
23 namespace ipsdk {
24 namespace simd {
25 namespace detail {
26 
29 
32 template <>
34 {
35  static IPSDK_FORCEINLINE
37  act(const Avx512Type<ipUInt8>::Type& in1,
38  const Avx512Type<ipUInt8>::Type& in2);
39 
40  static IPSDK_FORCEINLINE
41  void
42  act(const Avx512Type<ipUInt8>::Type& in1,
43  const Avx512Type<ipUInt8>::Type& in2,
45 };
46 
49 template <>
51 {
52  static IPSDK_FORCEINLINE
54  act(const Avx512Type<ipInt8>::Type& in1,
55  const Avx512Type<ipInt8>::Type& in2);
56 
57  static IPSDK_FORCEINLINE
58  void
59  act(const Avx512Type<ipInt8>::Type& in1,
60  const Avx512Type<ipInt8>::Type& in2,
62 };
63 
66 template <>
68 {
69  static IPSDK_FORCEINLINE
71  act(const Avx512Type<ipUInt16>::Type& in1,
72  const Avx512Type<ipUInt16>::Type& in2);
73 
74  static IPSDK_FORCEINLINE
75  void
76  act(const Avx512Type<ipUInt16>::Type& in1,
77  const Avx512Type<ipUInt16>::Type& in2,
79 };
80 
83 template <>
85 {
86  static IPSDK_FORCEINLINE
88  act(const Avx512Type<ipInt16>::Type& in1,
89  const Avx512Type<ipInt16>::Type& in2);
90 
91  static IPSDK_FORCEINLINE
92  void
93  act(const Avx512Type<ipInt16>::Type& in1,
94  const Avx512Type<ipInt16>::Type& in2,
96 };
97 
100 template <>
102 {
103  static IPSDK_FORCEINLINE
105  act(const Avx512Type<ipUInt32>::Type& in1,
106  const Avx512Type<ipUInt32>::Type& in2);
107 
108  static IPSDK_FORCEINLINE
109  void
110  act(const Avx512Type<ipUInt32>::Type& in1,
111  const Avx512Type<ipUInt32>::Type& in2,
113 };
114 
117 template <>
119 {
120  static IPSDK_FORCEINLINE
122  act(const Avx512Type<ipInt32>::Type& in1,
123  const Avx512Type<ipInt32>::Type& in2);
124 
125  static IPSDK_FORCEINLINE
126  void
127  act(const Avx512Type<ipInt32>::Type& in1,
128  const Avx512Type<ipInt32>::Type& in2,
130 };
131 
132 
135 template <>
137 {
138  static IPSDK_FORCEINLINE
140  act(const Avx512Type<ipReal32>::Type& in1,
141  const Avx512Type<ipReal32>::Type& in2);
142 
143  static IPSDK_FORCEINLINE
144  void
145  act(const Avx512Type<ipReal32>::Type& in1,
146  const Avx512Type<ipReal32>::Type& in2,
148 };
149 
152 template <>
154 {
155  static IPSDK_FORCEINLINE
157  act(const Avx512Type<ipReal64>::Type& in1,
158  const Avx512Type<ipReal64>::Type& in2);
159 
160  static IPSDK_FORCEINLINE
161  void
162  act(const Avx512Type<ipReal64>::Type& in1,
163  const Avx512Type<ipReal64>::Type& in2,
165 };
166 
169 
170 } // end of namespace detail
171 } // end of namespace simd
172 } // end of namespace ipsdk
173 
174 #endif // __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_DETAIL_AVX512_MAXREGDECL_H__
int8_t ipInt8
Base types definition.
Definition: BaseTypes.h:48
Defines the IPSDK_FORCEINLINE.
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
template structure which is specialized to implement the maximum computation on 2 scalars or 2 regist...
double ipReal64
Base types definition.
Definition: BaseTypes.h:57
int32_t ipInt32
Base types definition.
Definition: BaseTypes.h:52
(including fundation and byte and word instructions)
Definition: InstructionSetTypes.h:51
int16_t ipInt16
Base types definition.
Definition: BaseTypes.h:50
uint8_t ipUInt8
Base types definition.
Definition: BaseTypes.h:49
eInstructionSet
Enumerate for processor instruction set description.
Definition: InstructionSetTypes.h:31
Predefined types for Avx512 instruction set management.
Definition: MaxRegDecl.h:29
Definition of import/export macro for library.
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
structure used to retrieve AVX512 type associated to a base type
Definition: Avx512Types.h:36