IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
IsGreaterEqualRegDecl.h
1 // IsGreaterEqualRegDecl.h:
3 // -------------------
4 //
16 
17 #ifndef __IPSDKUTIL_INSTRUCTIONSET_COMPARISON_DETAIL_SSE2_ISGREATEREQUALREGDECL_H__
18 #define __IPSDKUTIL_INSTRUCTIONSET_COMPARISON_DETAIL_SSE2_ISGREATEREQUALREGDECL_H__
19 
24 
25 namespace ipsdk {
26 namespace simd {
27 namespace detail {
28 
31 
33 template <typename T>
34 struct IsGreaterEqualReg<
36  T,
37  typename boost::enable_if_c<
38  boost::is_integral<T>::value
39  >::type
40 >
41 {
42  static IPSDK_FORCEINLINE
43  typename RegMaskType<eInstructionSet::eIS_Sse2, T>::Type
44  act(const typename Sse2Type<T>::Type& in1,
45  const typename Sse2Type<T>::Type& in2);
46 
47  static IPSDK_FORCEINLINE
48  void
49  act(const typename Sse2Type<T>::Type& in1,
50  const typename Sse2Type<T>::Type& in2,
51  typename RegMaskType<eInstructionSet::eIS_Sse2, T>::Type& out);
52 };
53 
54 template <>
55 struct IsGreaterEqualReg<eInstructionSet::eIS_Sse2, ipReal32>
56 {
57  static IPSDK_FORCEINLINE
58  RegMaskType<eInstructionSet::eIS_Sse2, ipReal32>::Type
59  act(const Sse2Type<ipReal32>::Type& in1,
60  const Sse2Type<ipReal32>::Type& in2);
61 
62  static IPSDK_FORCEINLINE
63  void
64  act(const Sse2Type<ipReal32>::Type& in1,
65  const Sse2Type<ipReal32>::Type& in2,
66  RegMaskType<eInstructionSet::eIS_Sse2, ipReal32>::Type& out);
67 };
68 
69 template <>
70 struct IsGreaterEqualReg<eInstructionSet::eIS_Sse2, ipReal64>
71 {
72  static IPSDK_FORCEINLINE
73  RegMaskType<eInstructionSet::eIS_Sse2, ipReal64>::Type
74  act(const Sse2Type<ipReal64>::Type& in1,
75  const Sse2Type<ipReal64>::Type& in2);
76 
77  static IPSDK_FORCEINLINE
78  void
79  act(const Sse2Type<ipReal64>::Type& in1,
80  const Sse2Type<ipReal64>::Type& in2,
81  RegMaskType<eInstructionSet::eIS_Sse2, ipReal64>::Type& out);
82 };
83 
86 
87 } // end of namespace detail
88 } // end of namespace simd
89 } // end of namespace ipsdk
90 
91 #endif // __IPSDKUTIL_INSTRUCTIONSET_COMPARISON_DETAIL_SSE2_ISGREATEREQUALREGDECL_H__
92 
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
Predefined types for Sse2 instruction set management.
Definition of import/export macro for library.
Streaming SIMD Extensions 2.
Definition: InstructionSetTypes.h:36
float ipReal32
Base types definition.
Definition: BaseTypes.h:56