IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
MaskCastReg.h
Go to the documentation of this file.
1 // MaskCastReg.h:
3 // ------------
4 //
14 
15 #ifndef __IPSDKUTIL_INSTRUCTIONSET_DETAIL_AVX_MASKCASTREG_H__
16 #define __IPSDKUTIL_INSTRUCTIONSET_DETAIL_AVX_MASKCASTREG_H__
17 
24 
25 namespace ipsdk {
26 namespace simd {
27 namespace detail {
30 
33 template <typename TIn, typename TOut>
34 struct MaskCastReg<eInstructionSet::eIS_Avx, TIn, TOut,
35  typename boost::enable_if_c<
36  boost::is_same<TIn, TOut>::value || (boost::is_integral<TIn>::value
37  && boost::is_integral<TOut>::value && sizeof(TIn)==sizeof(TOut))
38  >::type
39 >
40 {
41  static IPSDK_FORCEINLINE
42  void act(const typename RegMaskType<eInstructionSet::eIS_Avx, TIn>::Type& in,
44  {
45  out = in;
46  }
47 };
48 
51 template <>
53 {
54  static IPSDK_FORCEINLINE
57  {
59  }
60 };
61 
64 template <>
66 {
67  static IPSDK_FORCEINLINE
70  {
72  }
73 };
74 
77 template <>
79 {
80  static IPSDK_FORCEINLINE
81  void act(
85  {
87 
91  }
92 };
93 
96 template <>
98 {
99  static IPSDK_FORCEINLINE
100  void act(
104  {
106 
111  }
112 };
113 
116 
117 } // end of namespace detail
118 } // end of namespace simd
119 } // end of namespace ipsdk
120 
121 #endif // __IPSDKUTIL_INSTRUCTIONSET_DETAIL_AVX_MASKCASTREG_H__
Definition: MaskCastReg.h:30
Defines the IPSDK_FORCEINLINE.
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
double ipReal64
Base types definition.
Definition: BaseTypes.h:57
int32_t ipInt32
Base types definition.
Definition: BaseTypes.h:52
Definition: CastReg.h:30
eInstructionSet
Enumerate for processor instruction set description.
Definition: InstructionSetTypes.h:31
Advanced Vector Extensions.
Definition: InstructionSetTypes.h:44
RegMaskType class.
Definition of import/export macro for library.
Definition: IsNotEqualRegDecl.h:30
Definition: RegMaskType.h:29
Definition: BitwiseCastReg.h:29
Definition: RegType.h:29
Definition: AssignRegDecl.h:31
float ipReal32
Base types definition.
Definition: BaseTypes.h:56