15 #ifndef __IPSDKUTIL_INSTRUCTIONSET_COMPARISON_DETAIL_AVX2_ISLESSREGIMPL_H__ 16 #define __IPSDKUTIL_INSTRUCTIONSET_COMPARISON_DETAIL_AVX2_ISLESSREGIMPL_H__ 35 typename RegMaskType<eInstructionSet::eIS_Avx2, T>::Type
37 typename boost::enable_if_c<
38 boost::is_integral<T>::value
41 const typename AvxType<T>::Type& in1,
42 const typename AvxType<T>::Type& in2)
44 const typename AvxType<T>::Type& in1GtIn2 =
45 IsGreaterReg<eInstructionSet::eIS_Avx2, T>::act(in1, in2);
46 const typename AvxType<T>::Type& in1EqIn2 =
47 IsEqualReg<eInstructionSet::eIS_Avx2, T>::act(in1, in2);
49 return BitwiseNotReg<eInstructionSet::eIS_Avx2, T>::act(
50 BitwiseOrReg<eInstructionSet::eIS_Avx2, T>::act(in1GtIn2, in1EqIn2));
57 typename boost::enable_if_c<
58 boost::is_integral<T>::value
61 const typename AvxType<T>::Type& in1,
62 const typename AvxType<T>::Type& in2,
63 typename RegMaskType<eInstructionSet::eIS_Avx2, T>::Type& out)
65 typename AvxType<T>::Type in1GtIn2;
66 IsGreaterReg<eInstructionSet::eIS_Avx2, T>::act(in1, in2, in1GtIn2);
67 typename AvxType<T>::Type in1EqIn2;
68 IsEqualReg<eInstructionSet::eIS_Avx2, T>::act(in1, in2, in1EqIn2);
69 BitwiseOrReg<eInstructionSet::eIS_Avx2, T>::act(in1GtIn2, in1EqIn2, out);
70 BitwiseNotReg<eInstructionSet::eIS_Avx2, T>::act(out, out);
74 RegMaskType<eInstructionSet::eIS_Avx2, ipReal32>::Type
75 IsLessReg<eInstructionSet::eIS_Avx2, ipReal32>::act(
76 const AvxType<ipReal32>::Type& in1,
77 const AvxType<ipReal32>::Type& in2)
79 return IsLessReg<eInstructionSet::eIS_Avx, ipReal32>::act(in1, in2);
84 IsLessReg<eInstructionSet::eIS_Avx2, ipReal32>::act(
85 const AvxType<ipReal32>::Type& in1,
86 const AvxType<ipReal32>::Type& in2,
87 RegMaskType<eInstructionSet::eIS_Avx2, ipReal32>::Type& out)
89 IsLessReg<eInstructionSet::eIS_Avx, ipReal32>::act(in1, in2, out);
93 RegMaskType<eInstructionSet::eIS_Avx2, ipReal64>::Type
94 IsLessReg<eInstructionSet::eIS_Avx2, ipReal64>::act(
95 const AvxType<ipReal64>::Type& in1,
96 const AvxType<ipReal64>::Type& in2)
98 return IsLessReg<eInstructionSet::eIS_Avx, ipReal64>::act(in1, in2);
103 IsLessReg<eInstructionSet::eIS_Avx2, ipReal64>::act(
104 const AvxType<ipReal64>::Type& in1,
105 const AvxType<ipReal64>::Type& in2,
106 RegMaskType<eInstructionSet::eIS_Avx2, ipReal64>::Type& out)
108 IsLessReg<eInstructionSet::eIS_Avx, ipReal64>::act(in1, in2, out);
123 #endif // __IPSDKUTIL_INSTRUCTIONSET_COMPARISON_DETAIL_AVX2_ISLESSREGIMPL_H__ Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
Advanced Vector Extensions 2.
Definition: InstructionSetTypes.h:48