IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
LoadReg.h
Go to the documentation of this file.
1 // LoadReg.h:
3 // ------------
4 //
14 
15 #ifndef __IPSDKUTIL_INSTRUCTIONSET_DETAIL_AVX_LOADREG_H__
16 #define __IPSDKUTIL_INSTRUCTIONSET_DETAIL_AVX_LOADREG_H__
17 
22 
23 namespace ipsdk {
24 namespace simd {
25 namespace detail {
26 
29 
30 // load implementation for AVX for ipReal32
31 template<>
33 {
34  static IPSDK_FORCEINLINE
35  AvxType<ipReal32>::Type act(const ipReal32* pT)
36  {
37  return _mm256_loadu_ps(pT);
38  }
39 
40  static IPSDK_FORCEINLINE
41  void
42  act(AvxType<ipReal32>::Type& reg, const ipReal32* pT)
43  {
44  reg = _mm256_loadu_ps(pT);
45  }
46 };
47 
48 // load implementation for AVX for ipReal64
49 template<>
51 {
52  static IPSDK_FORCEINLINE
53  AvxType<ipReal64>::Type act(const ipReal64* pT)
54  {
55  return _mm256_loadu_pd(pT);
56  }
57 
58  static IPSDK_FORCEINLINE
59  void act(AvxType<ipReal64>::Type& reg, const ipReal64* pT)
60  {
61  reg = _mm256_loadu_pd(pT);
62  }
63 };
64 
67 
68 } // end of namespace detail
69 } // end of namespace simd
70 } // end of namespace ipsdk
71 
72 #endif // __IPSDKUTIL_INSTRUCTIONSET_DETAIL_AVX_LOADREG_H__
Defines the IPSDK_FORCEINLINE.
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
double ipReal64
Base types definition.
Definition: BaseTypes.h:57
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.
structure used to retrieve AVX type associated to a base type
Definition: AvxTypes.h:33
Definition: LoadRegDecl.h:30
float ipReal32
Base types definition.
Definition: BaseTypes.h:56