IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
SetImpl.h
Go to the documentation of this file.
1 // SetImpl.h:
3 // ------------
4 //
14 
15 #ifndef __IPSDKUTIL_INSTRUCTIONSET_DETAIL_AVX_SETIMPL_H__
16 #define __IPSDKUTIL_INSTRUCTIONSET_DETAIL_AVX_SETIMPL_H__
17 
21 
22 namespace ipsdk {
23 namespace simd {
24 namespace detail {
25 
28 
29 template <typename T>
31  static IPSDK_FORCEINLINE
32  void act(T* buffer, T value, ipUInt64 nbElts)
33  {
34  const ipUInt64 nbAlignedElts =
36 
37  typename AvxType<T>::Type reg;
39 
40  for(ipUInt64 i=0; i<nbAlignedElts;
42 
44 
45  for(ipUInt64 i=nbAlignedElts; i<nbElts; ++i)
46  buffer[i] = value;
47  }
48 };
49 
52 
53 } // end of namespace detail
54 } // end of namespace simd
55 } // end of namespace ipsdk
56 
57 #endif // __IPSDKUTIL_INSTRUCTIONSET_DETAIL_AVX_SETIMPL_H__
Defines the IPSDK_FORCEINLINE.
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
uint64_t ipUInt64
Base types definition.
Definition: BaseTypes.h:55
Definition: SetImpl.h:29
Definition: NbEltsPerReg.h:28
eInstructionSet
Enumerate for processor instruction set description.
Definition: InstructionSetTypes.h:31
Advanced Vector Extensions.
Definition: InstructionSetTypes.h:44
Definition of import/export macro for library.
unload function; unloads a pack into a memory buffer
structure used to retrieve AVX type associated to a base type
Definition: AvxTypes.h:33
Definition: UnloadReg.h:30
Definition: AssignRegDecl.h:31