15 #ifndef __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_DETAIL_SSE2_SUBREG_H__ 16 #define __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_DETAIL_SSE2_SUBREG_H__ 24 #include <boost/type_traits/is_integral.hpp> 25 #include <boost/utility/enable_if.hpp> 39 typename boost::enable_if_c<boost::is_integral<T>::value
40 && sizeof(T) == 1>::type>
42 static IPSDK_FORCEINLINE
47 return _mm_sub_epi8(in1, in2);
50 static IPSDK_FORCEINLINE
56 out = _mm_sub_epi8(in1, in2);
64 typename boost::enable_if_c<boost::is_integral<T>::value
65 && sizeof(T) == 2>::type>
67 static IPSDK_FORCEINLINE
72 return _mm_sub_epi16(in1, in2);
75 static IPSDK_FORCEINLINE
81 out = _mm_sub_epi16(in1, in2);
89 typename boost::enable_if_c<boost::is_integral<T>::value
90 && sizeof(T) == 4>::type>
92 static IPSDK_FORCEINLINE
97 return _mm_sub_epi32(in1, in2);
100 static IPSDK_FORCEINLINE
106 out = _mm_sub_epi32(in1, in2);
112 template <
typename T>
114 typename boost::enable_if_c<boost::is_integral<T>::value
115 && sizeof(T) == 8>::type>
117 static IPSDK_FORCEINLINE
122 return _mm_sub_epi64(in1, in2);
125 static IPSDK_FORCEINLINE
131 out = _mm_sub_epi64(in1, in2);
140 static IPSDK_FORCEINLINE
145 return _mm_sub_ps(in1, in2);
148 static IPSDK_FORCEINLINE
154 out = _mm_sub_ps(in1, in2);
163 static IPSDK_FORCEINLINE
168 return _mm_sub_pd(in1, in2);
171 static IPSDK_FORCEINLINE
177 out = _mm_sub_pd(in1, in2);
188 #endif // __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_DETAIL_SSE2_SUBREG_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
Predefined types for Sse2 instruction set management.
Predefined types associated to instruction set management.
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
float ipReal32
Base types definition.
Definition: BaseTypes.h:56