IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
IsNotEqualRegImpl.h
Go to the documentation of this file.
1 // IsNotEqualRegImpl.h:
3 // -------------------
4 //
14 
15 #ifndef __IPSDKUTIL_INSTRUCTIONSET_COMPARISON_DETAIL_SSE2_ISNOTEQUALREGIMPL_H__
16 #define __IPSDKUTIL_INSTRUCTIONSET_COMPARISON_DETAIL_SSE2_ISNOTEQUALREGIMPL_H__
17 
21 
22 namespace ipsdk {
23 namespace simd {
24 namespace detail {
25 
28 
29 template <typename T>
30 IPSDK_FORCEINLINE
31 typename RegMaskType<eInstructionSet::eIS_Sse2, T>::Type
32 IsNotEqualReg<eInstructionSet::eIS_Sse2, T>::act(
33  const typename Sse2Type<T>::Type& in1,
34  const typename Sse2Type<T>::Type& in2)
35 {
36  return BitwiseNotReg<eInstructionSet::eIS_Sse2, T>::act(
37  IsEqualReg<eInstructionSet::eIS_Sse2, T>::act(in1, in2));
38 }
39 
40 template <typename T>
41 IPSDK_FORCEINLINE
42 void
43 IsNotEqualReg<eInstructionSet::eIS_Sse2, T>::act(
44  const typename Sse2Type<T>::Type& in1,
45  const typename Sse2Type<T>::Type& in2,
46  typename RegMaskType<eInstructionSet::eIS_Sse2, T>::Type& out)
47 {
48  IsEqualReg<eInstructionSet::eIS_Sse2, T>::act(in1, in2, out);
49  BitwiseNotReg<eInstructionSet::eIS_Sse2, T>::act(out, out);
50 }
51 
54 
55 } // end of namespace detail
56 } // end of namespace simd
57 } // end of namespace ipsdk
58 
60 
61 #endif // __IPSDKUTIL_INSTRUCTIONSET_COMPARISON_DETAIL_SSE2_ISNOTEQUALREGIMPL_H__
declaration of specialized BitwiseAndReg structure for SSE2 instruction set
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
isEqual function