IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
LoadPack.h
Go to the documentation of this file.
1 // LoadPack.h:
3 // ------------
4 //
14 
15 #ifndef __IPSDKUTIL_INSTRUCTIONSET_DETAIL_AVX_LOADPACK_H__
16 #define __IPSDKUTIL_INSTRUCTIONSET_DETAIL_AVX_LOADPACK_H__
17 
23 
24 namespace ipsdk {
25 namespace simd {
26 namespace detail {
27 
30 
31 template<typename T>
33  typename boost::enable_if_c<sizeof(T) == 4>::type>
34 {
35  static IPSDK_FORCEINLINE
36  BasePack<ePackType::ePT_Avx, T> act(const T* pT)
37  {
41  pT + AvxStep<T>::Value);
43  pT + 2*AvxStep<T>::Value);
45  pT + 3*AvxStep<T>::Value);
46  return pack;
47  }
48 
49  static IPSDK_FORCEINLINE
50  void
51  act(BasePack<ePackType::ePT_Avx, T>& pack, const T* pT)
52  {
57  }
58 };
59 
60 template<typename T>
62  typename boost::enable_if_c<sizeof(T) == 8>::type>
63 {
64  static IPSDK_FORCEINLINE
65  BasePack<ePackType::ePT_Avx, T> act(const T* pT)
66  {
70  pT + AvxStep<T>::Value);
72  pT + 2*AvxStep<T>::Value);
74  pT + 3*AvxStep<T>::Value);
76  pT + 4*AvxStep<T>::Value);
78  pT + 5*AvxStep<T>::Value);
80  pT + 6*AvxStep<T>::Value);
82  pT + 7*AvxStep<T>::Value);
83  return pack;
84  }
85 
86  static IPSDK_FORCEINLINE
87  void
88  act(BasePack<ePackType::ePT_Avx, T>& pack, const T* pT)
89  {
98  }
99 };
100 
103 
104 } // end of namespace detail
105 } // end of namespace simd
106 } // end of namespace ipsdk
107 
108 #endif // __IPSDKUTIL_INSTRUCTIONSET_DETAIL_AVX_LOADPACK_H__
Defines the IPSDK_FORCEINLINE.
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
Definition: LoadPack.h:31
Definition: BasePack.h:30
BasePack class; defines a set of scalars (for instruction set "standard") or registers (for all other...
eInstructionSet
Enumerate for processor instruction set description.
Definition: InstructionSetTypes.h:31
Advanced Vector Extensions.
Definition: InstructionSetTypes.h:44
Predefined types associated to instruction set management.
Definition of import/export macro for library.
Definition: LoadRegDecl.h:30