15 #ifndef __IPSDKUTIL_INSTRUCTIONSET_DETAIL_AVX_BINARYPACKOP_H__ 16 #define __IPSDKUTIL_INSTRUCTIONSET_DETAIL_AVX_BINARYPACKOP_H__ 29 template <
class OpClass,
typename Scalar>
32 static IPSDK_FORCEINLINE
38 out._val[0] = OpClass::act(in1._val[0], in2._val[0]);
39 out._val[1] = OpClass::act(in1._val[1], in2._val[1]);
40 out._val[2] = OpClass::act(in1._val[2], in2._val[2]);
41 out._val[3] = OpClass::act(in1._val[3], in2._val[3]);
45 static IPSDK_FORCEINLINE
51 OpClass::act(in1._val[0], in2._val[0], out._val[0]);
52 OpClass::act(in1._val[1], in2._val[1], out._val[1]);
53 OpClass::act(in1._val[2], in2._val[2], out._val[2]);
54 OpClass::act(in1._val[3], in2._val[3], out._val[3]);
57 static IPSDK_FORCEINLINE
62 OpClass::act(inOut1._val[0], inOut2._val[0]);
63 OpClass::act(inOut1._val[1], inOut2._val[1]);
64 OpClass::act(inOut1._val[2], inOut2._val[2]);
65 OpClass::act(inOut1._val[3], inOut2._val[3]);
75 OpClass::act(in1._val[0], in2, out._val[0]);
76 OpClass::act(in1._val[1], in2, out._val[1]);
77 OpClass::act(in1._val[2], in2, out._val[2]);
78 OpClass::act(in1._val[3], in2, out._val[3]);
82 template <
class OpClass,
typename Scalar>
85 static IPSDK_FORCEINLINE
91 out._val[0] = OpClass::act(in1._val[0], in2._val[0]);
92 out._val[1] = OpClass::act(in1._val[1], in2._val[1]);
93 out._val[2] = OpClass::act(in1._val[2], in2._val[2]);
94 out._val[3] = OpClass::act(in1._val[3], in2._val[3]);
95 out._val[4] = OpClass::act(in1._val[4], in2._val[4]);
96 out._val[5] = OpClass::act(in1._val[5], in2._val[5]);
97 out._val[6] = OpClass::act(in1._val[6], in2._val[6]);
98 out._val[7] = OpClass::act(in1._val[7], in2._val[7]);
102 static IPSDK_FORCEINLINE
108 OpClass::act(in1._val[0], in2._val[0], out._val[0]);
109 OpClass::act(in1._val[1], in2._val[1], out._val[1]);
110 OpClass::act(in1._val[2], in2._val[2], out._val[2]);
111 OpClass::act(in1._val[3], in2._val[3], out._val[3]);
112 OpClass::act(in1._val[4], in2._val[4], out._val[4]);
113 OpClass::act(in1._val[5], in2._val[5], out._val[5]);
114 OpClass::act(in1._val[6], in2._val[6], out._val[6]);
115 OpClass::act(in1._val[7], in2._val[7], out._val[7]);
118 static IPSDK_FORCEINLINE
123 OpClass::act(inOut1._val[0], inOut2._val[0]);
124 OpClass::act(inOut1._val[1], inOut2._val[1]);
125 OpClass::act(inOut1._val[2], inOut2._val[2]);
126 OpClass::act(inOut1._val[3], inOut2._val[3]);
127 OpClass::act(inOut1._val[4], inOut2._val[4]);
128 OpClass::act(inOut1._val[5], inOut2._val[5]);
129 OpClass::act(inOut1._val[6], inOut2._val[6]);
130 OpClass::act(inOut1._val[7], inOut2._val[7]);
140 OpClass::act(in1._val[0], in2, out._val[0]);
141 OpClass::act(in1._val[1], in2, out._val[1]);
142 OpClass::act(in1._val[2], in2, out._val[2]);
143 OpClass::act(in1._val[3], in2, out._val[3]);
144 OpClass::act(in1._val[4], in2, out._val[4]);
145 OpClass::act(in1._val[5], in2, out._val[5]);
146 OpClass::act(in1._val[6], in2, out._val[6]);
147 OpClass::act(in1._val[7], in2, out._val[7]);
158 #endif // __IPSDKUTIL_INSTRUCTIONSET_DETAIL_AVX_BINARYPACKOP_H__ Defines the IPSDK_FORCEINLINE.
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
double ipReal64
Base types definition.
Definition: BaseTypes.h:57
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.
float ipReal32
Base types definition.
Definition: BaseTypes.h:56
Definition: BinaryPackOp.h:31
structure containing intrinsic registers used to store vectorized data
Definition: BasePackDecl.h:29