15 #ifndef __IPSDKUTIL_INSTRUCTIONSET_DETAIL_AVX2_UNARYPACKOPRETMASK_H__ 16 #define __IPSDKUTIL_INSTRUCTIONSET_DETAIL_AVX2_UNARYPACKOPRETMASK_H__ 34 typename boost::enable_if_c<sizeof(T) == 1>::type>
36 static IPSDK_FORCEINLINE
41 out._val[0] = OpClass::act(in._val[0]);
45 static IPSDK_FORCEINLINE
50 OpClass::act(in._val[0], out._val[0]);
54 template <
typename T,
class OpClass>
56 typename boost::enable_if_c<sizeof(T) == 2>::type>
58 static IPSDK_FORCEINLINE
63 out._val[0] = OpClass::act(in._val[0]);
64 out._val[1] = OpClass::act(in._val[1]);
68 static IPSDK_FORCEINLINE
73 OpClass::act(in._val[0], out._val[0]);
74 OpClass::act(in._val[1], out._val[1]);
78 template <
typename T,
class OpClass>
80 typename boost::enable_if_c<sizeof(T) == 4>::type>
82 static IPSDK_FORCEINLINE
87 out._val[0] = OpClass::act(in._val[0]);
88 out._val[1] = OpClass::act(in._val[1]);
89 out._val[2] = OpClass::act(in._val[2]);
90 out._val[3] = OpClass::act(in._val[3]);
94 static IPSDK_FORCEINLINE
99 OpClass::act(in._val[0], out._val[0]);
100 OpClass::act(in._val[1], out._val[1]);
101 OpClass::act(in._val[2], out._val[2]);
102 OpClass::act(in._val[3], out._val[3]);
106 template <
typename T,
class OpClass>
108 typename boost::enable_if_c<sizeof(T) == 8>::type>
110 static IPSDK_FORCEINLINE
115 out._val[0] = OpClass::act(in._val[0]);
116 out._val[1] = OpClass::act(in._val[1]);
117 out._val[2] = OpClass::act(in._val[2]);
118 out._val[3] = OpClass::act(in._val[3]);
119 out._val[4] = OpClass::act(in._val[4]);
120 out._val[5] = OpClass::act(in._val[5]);
121 out._val[6] = OpClass::act(in._val[6]);
122 out._val[7] = OpClass::act(in._val[7]);
126 static IPSDK_FORCEINLINE
131 OpClass::act(in._val[0], out._val[0]);
132 OpClass::act(in._val[1], out._val[1]);
133 OpClass::act(in._val[2], out._val[2]);
134 OpClass::act(in._val[3], out._val[3]);
135 OpClass::act(in._val[4], out._val[4]);
136 OpClass::act(in._val[5], out._val[5]);
137 OpClass::act(in._val[6], out._val[6]);
138 OpClass::act(in._val[7], out._val[7]);
149 #endif // __IPSDKUTIL_INSTRUCTIONSET_DETAIL_AVX2_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 2.
Definition: InstructionSetTypes.h:48
Predefined types associated to instruction set management.
Definition of import/export macro for library.
Definition: BasePack.h:37