15 #ifndef __IPSDKUTIL_INSTRUCTIONSET_DETAIL_SSE2_BINARYMASKPACKOP_H__ 16 #define __IPSDKUTIL_INSTRUCTIONSET_DETAIL_SSE2_BINARYMASKPACKOP_H__ 30 class OpClass,
typename Scalar>
32 typename boost::enable_if_c<sizeof(T) == 1>::type>
41 out._val[0] = OpClass::act(in1._val[0], in2._val[0]);
52 OpClass::act(in1._val[0], in2._val[0], out._val[0]);
61 OpClass::act(inOut1._val[0], inOut2._val[0]);
65 template <
typename T,
class OpClass,
typename Scalar>
67 typename boost::enable_if_c<sizeof(T) == 2>::type>
76 out._val[0] = OpClass::act(in1._val[0], in2._val[0]);
77 out._val[1] = OpClass::act(in1._val[1], in2._val[1]);
88 OpClass::act(in1._val[0], in2._val[0], out._val[0]);
89 OpClass::act(in1._val[1], in2._val[1], out._val[1]);
98 OpClass::act(inOut1._val[0], inOut2._val[0]);
99 OpClass::act(inOut1._val[1], inOut2._val[1]);
103 template <
typename T,
class OpClass,
typename Scalar>
105 typename boost::enable_if_c<sizeof(T) == 4>::type>
114 out._val[0] = OpClass::act(in1._val[0], in2._val[0]);
115 out._val[1] = OpClass::act(in1._val[1], in2._val[1]);
116 out._val[2] = OpClass::act(in1._val[2], in2._val[2]);
117 out._val[3] = OpClass::act(in1._val[3], in2._val[3]);
128 OpClass::act(in1._val[0], in2._val[0], out._val[0]);
129 OpClass::act(in1._val[1], in2._val[1], out._val[1]);
130 OpClass::act(in1._val[2], in2._val[2], out._val[2]);
131 OpClass::act(in1._val[3], in2._val[3], out._val[3]);
140 OpClass::act(inOut1._val[0], inOut2._val[0]);
141 OpClass::act(inOut1._val[1], inOut2._val[1]);
142 OpClass::act(inOut1._val[2], inOut2._val[2]);
143 OpClass::act(inOut1._val[3], inOut2._val[3]);
147 template <
typename T,
class OpClass,
typename Scalar>
149 typename boost::enable_if_c<sizeof(T) == 8>::type>
158 out._val[0] = OpClass::act(in1._val[0], in2._val[0]);
159 out._val[1] = OpClass::act(in1._val[1], in2._val[1]);
160 out._val[2] = OpClass::act(in1._val[2], in2._val[2]);
161 out._val[3] = OpClass::act(in1._val[3], in2._val[3]);
162 out._val[4] = OpClass::act(in1._val[4], in2._val[4]);
163 out._val[5] = OpClass::act(in1._val[5], in2._val[5]);
164 out._val[6] = OpClass::act(in1._val[6], in2._val[6]);
165 out._val[7] = OpClass::act(in1._val[7], in2._val[7]);
176 OpClass::act(in1._val[0], in2._val[0], out._val[0]);
177 OpClass::act(in1._val[1], in2._val[1], out._val[1]);
178 OpClass::act(in1._val[2], in2._val[2], out._val[2]);
179 OpClass::act(in1._val[3], in2._val[3], out._val[3]);
180 OpClass::act(in1._val[4], in2._val[4], out._val[4]);
181 OpClass::act(in1._val[5], in2._val[5], out._val[5]);
182 OpClass::act(in1._val[6], in2._val[6], out._val[6]);
183 OpClass::act(in1._val[7], in2._val[7], out._val[7]);
192 OpClass::act(inOut1._val[0], inOut2._val[0]);
193 OpClass::act(inOut1._val[1], inOut2._val[1]);
194 OpClass::act(inOut1._val[2], inOut2._val[2]);
195 OpClass::act(inOut1._val[3], inOut2._val[3]);
196 OpClass::act(inOut1._val[4], inOut2._val[4]);
197 OpClass::act(inOut1._val[5], inOut2._val[5]);
198 OpClass::act(inOut1._val[6], inOut2._val[6]);
199 OpClass::act(inOut1._val[7], inOut2._val[7]);
210 #endif // __IPSDKUTIL_INSTRUCTIONSET_DETAIL_SSE2_BINARYMASKPACKOP_H__ Defines the IPSDK_FORCEINLINE.
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
Definition: BinaryMaskPackOp.h:30
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