15 #ifndef __IPSDKUTIL_INSTRUCTIONSET_DETAIL_SSE2_BINARYPACKOPRETMASK_H__ 16 #define __IPSDKUTIL_INSTRUCTIONSET_DETAIL_SSE2_BINARYPACKOPRETMASK_H__ 31 class OpClass,
typename Scalar>
33 typename boost::enable_if_c<sizeof(T) == 1>::type>
42 out._val[0] = OpClass::act(in1._val[0], in2._val[0]);
53 OpClass::act(in1._val[0], in2._val[0], out._val[0]);
63 OpClass::act(in1._val[0], in2, out._val[0]);
67 template <
typename T,
class OpClass,
typename Scalar>
69 typename boost::enable_if_c<sizeof(T) == 2>::type>
78 out._val[0] = OpClass::act(in1._val[0], in2._val[0]);
79 out._val[1] = OpClass::act(in1._val[1], in2._val[1]);
90 OpClass::act(in1._val[0], in2._val[0], out._val[0]);
91 OpClass::act(in1._val[1], in2._val[1], out._val[1]);
101 OpClass::act(in1._val[0], in2, out._val[0]);
102 OpClass::act(in1._val[1], in2, out._val[1]);
106 template <
typename T,
class OpClass,
typename Scalar>
108 typename boost::enable_if_c<sizeof(T) == 4>::type>
117 out._val[0] = OpClass::act(in1._val[0], in2._val[0]);
118 out._val[1] = OpClass::act(in1._val[1], in2._val[1]);
119 out._val[2] = OpClass::act(in1._val[2], in2._val[2]);
120 out._val[3] = OpClass::act(in1._val[3], in2._val[3]);
131 OpClass::act(in1._val[0], in2._val[0], out._val[0]);
132 OpClass::act(in1._val[1], in2._val[1], out._val[1]);
133 OpClass::act(in1._val[2], in2._val[2], out._val[2]);
134 OpClass::act(in1._val[3], in2._val[3], out._val[3]);
144 OpClass::act(in1._val[0], in2, out._val[0]);
145 OpClass::act(in1._val[1], in2, out._val[1]);
146 OpClass::act(in1._val[2], in2, out._val[2]);
147 OpClass::act(in1._val[3], in2, out._val[3]);
151 template <
typename T,
class OpClass,
typename Scalar>
153 typename boost::enable_if_c<sizeof(T) == 8>::type>
162 out._val[0] = OpClass::act(in1._val[0], in2._val[0]);
163 out._val[1] = OpClass::act(in1._val[1], in2._val[1]);
164 out._val[2] = OpClass::act(in1._val[2], in2._val[2]);
165 out._val[3] = OpClass::act(in1._val[3], in2._val[3]);
166 out._val[4] = OpClass::act(in1._val[4], in2._val[4]);
167 out._val[5] = OpClass::act(in1._val[5], in2._val[5]);
168 out._val[6] = OpClass::act(in1._val[6], in2._val[6]);
169 out._val[7] = OpClass::act(in1._val[7], in2._val[7]);
180 OpClass::act(in1._val[0], in2._val[0], out._val[0]);
181 OpClass::act(in1._val[1], in2._val[1], out._val[1]);
182 OpClass::act(in1._val[2], in2._val[2], out._val[2]);
183 OpClass::act(in1._val[3], in2._val[3], out._val[3]);
184 OpClass::act(in1._val[4], in2._val[4], out._val[4]);
185 OpClass::act(in1._val[5], in2._val[5], out._val[5]);
186 OpClass::act(in1._val[6], in2._val[6], out._val[6]);
187 OpClass::act(in1._val[7], in2._val[7], out._val[7]);
197 OpClass::act(in1._val[0], in2, out._val[0]);
198 OpClass::act(in1._val[1], in2, out._val[1]);
199 OpClass::act(in1._val[2], in2, out._val[2]);
200 OpClass::act(in1._val[3], in2, out._val[3]);
201 OpClass::act(in1._val[4], in2, out._val[4]);
202 OpClass::act(in1._val[5], in2, out._val[5]);
203 OpClass::act(in1._val[6], in2, out._val[6]);
204 OpClass::act(in1._val[7], in2, out._val[7]);
215 #endif // __IPSDKUTIL_INSTRUCTIONSET_DETAIL_SSE2_BINARYPACKOPRETMASK_H__ Definition: BasePack.h:37
Defines the IPSDK_FORCEINLINE.
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
Definition: BinaryPackOpRetMask.h:31
eInstructionSet
Enumerate for processor instruction set description.
Definition: InstructionSetTypes.h:31
Predefined types associated to instruction set management.
Definition of import/export macro for library.
Streaming SIMD Extensions 2.
Definition: InstructionSetTypes.h:36
Definition: BaseMaskPack.h:30