15 #ifndef __IPSDKUTIL_INSTRUCTIONSET_DETAIL_AVX_UNARYPACKOPRETMASK_H__ 16 #define __IPSDKUTIL_INSTRUCTIONSET_DETAIL_AVX_UNARYPACKOPRETMASK_H__ 30 template <
typename T,
class OpClass>
32 typename boost::enable_if_c<sizeof(T) == 4>::type>
34 static IPSDK_FORCEINLINE
39 out._val[0] = OpClass::act(in._val[0]);
40 out._val[1] = OpClass::act(in._val[1]);
41 out._val[2] = OpClass::act(in._val[2]);
42 out._val[3] = OpClass::act(in._val[3]);
46 static IPSDK_FORCEINLINE
51 OpClass::act(in._val[0], out._val[0]);
52 OpClass::act(in._val[1], out._val[1]);
53 OpClass::act(in._val[2], out._val[2]);
54 OpClass::act(in._val[3], out._val[3]);
58 template <
typename T,
class OpClass>
60 typename boost::enable_if_c<sizeof(T) == 8>::type>
62 static IPSDK_FORCEINLINE
67 out._val[0] = OpClass::act(in._val[0]);
68 out._val[1] = OpClass::act(in._val[1]);
69 out._val[2] = OpClass::act(in._val[2]);
70 out._val[3] = OpClass::act(in._val[3]);
71 out._val[4] = OpClass::act(in._val[4]);
72 out._val[5] = OpClass::act(in._val[5]);
73 out._val[6] = OpClass::act(in._val[6]);
74 out._val[7] = OpClass::act(in._val[7]);
78 static IPSDK_FORCEINLINE
83 OpClass::act(in._val[0], out._val[0]);
84 OpClass::act(in._val[1], out._val[1]);
85 OpClass::act(in._val[2], out._val[2]);
86 OpClass::act(in._val[3], out._val[3]);
87 OpClass::act(in._val[4], out._val[4]);
88 OpClass::act(in._val[5], out._val[5]);
89 OpClass::act(in._val[6], out._val[6]);
90 OpClass::act(in._val[7], out._val[7]);
101 #endif // __IPSDKUTIL_INSTRUCTIONSET_DETAIL_AVX_UNARYPACKOPRETMASK_H__ Defines the IPSDK_FORCEINLINE.
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
Definition: UnaryPackOpRetMask.h:31
Definition: BaseMaskPack.h:31
eInstructionSet
Enumerate for processor instruction set description.
Definition: InstructionSetTypes.h:31
Advanced Vector Extensions.
Definition: InstructionSetTypes.h:44
Predefined types associated to instruction set management.
Definition of import/export macro for library.
Definition: BasePack.h:37