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_SSE2_SETIMPL_H__
16 #define __IPSDKUTIL_INSTRUCTIONSET_DETAIL_SSE2_SETIMPL_H__
17 
22 
23 namespace ipsdk {
24 namespace simd {
25 namespace detail {
26 
29 
30 template <typename T>
32  static IPSDK_FORCEINLINE
33  void act(T* buffer, T value, ipUInt64 nbElts)
34  {
35  const ipUInt64 nbAlignedElts =
37  typedef typename Sse2Type<T>::Type RegT;
38  RegT reg;
40 
41  for(ipUInt64 i=0; i<nbAlignedElts; i+=NbEltsPerReg<ePackType::ePT_Sse, T>::Value)
43 
44  for(ipUInt64 i=nbAlignedElts; i<nbElts; ++i)
45  buffer[i] = value;
46  }
47 };
48 
51 
52 } // end of namespace detail
53 } // end of namespace simd
54 } // end of namespace ipsdk
55 
56 #endif // __IPSDKUTIL_INSTRUCTIONSET_DETAIL_SSE2_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
Definition of import/export macro for library.
unload function; unloads a pack into a memory buffer
Streaming SIMD Extensions 2.
Definition: InstructionSetTypes.h:36
structure used to retrieve SSE2 type associated to a base type
Definition: Sse2Types.h:32
Definition: UnloadReg.h:30
Definition: AssignRegDecl.h:31