IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
BitwiseSelectReg.h
Go to the documentation of this file.
1 // BitwiseSelectReg.h:
3 // -------------------
4 //
14 
15 #ifndef __IPSDKUTIL_INSTRUCTIONSET_LOGICAL_DETAIL_SSE2_BITWISESELECTREG_H__
16 #define __IPSDKUTIL_INSTRUCTIONSET_LOGICAL_DETAIL_SSE2_BITWISESELECTREG_H__
17 
24 
25 namespace ipsdk {
26 namespace simd {
27 namespace detail {
28 
31 
33 template <typename T>
35 {
36  static IPSDK_FORCEINLINE
37  typename Sse2Type<T>::Type
38  act(const typename Sse2Type<T>::Type& mask,
39  const typename Sse2Type<T>::Type& in1,
40  const typename Sse2Type<T>::Type& in2)
41  {
42  typename Sse2Type<T>::Type in2AndNotMask =
44 
45  typename Sse2Type<T>::Type out =
48  in2AndNotMask);
49 
50  return out;
51  }
52 
53  static IPSDK_FORCEINLINE
54  void
55  act(const typename Sse2Type<T>::Type& mask,
56  const typename Sse2Type<T>::Type& in1,
57  const typename Sse2Type<T>::Type& in2,
58  typename Sse2Type<T>::Type& out)
59  {
60  typename Sse2Type<T>::Type in2AndNotMask, in1AndMask;
63  BitwiseOrReg<eInstructionSet::eIS_Sse2, T>::act(in1AndMask, in2AndNotMask, out);
64  }
65 };
66 
69 
70 } // end of namespace detail
71 } // end of namespace simd
72 } // end of namespace ipsdk
73 
74 #endif // __IPSDKUTIL_INSTRUCTIONSET_LOGICAL_DETAIL_SSE2_BITWISESELECTREG_H__
Defines the IPSDK_FORCEINLINE.
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
Definition: BitwiseAndNotReg.h:30
Definition: BitwiseSelectReg.h:30
eInstructionSet
Enumerate for processor instruction set description.
Definition: InstructionSetTypes.h:31
Definition: BitwiseOrReg.h:30
Definition of import/export macro for library.
Streaming SIMD Extensions 2.
Definition: InstructionSetTypes.h:36
structure used to retrieve SSE2 type associated to a base type
Definition: Sse2Types.h:32
Definition: BitwiseAndReg.h:30