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_AVX512_SETIMPL_H__
16 #define __IPSDKUTIL_INSTRUCTIONSET_DETAIL_AVX512_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  typedef typename Avx512Type<T>::Type RegT;
37  RegT reg;
39 
40  for(ipUInt64 i=0; i<nbAlignedElts; i+=NbEltsPerReg<ePackType::ePT_Avx512, T>::Value)
42 
43  for(ipUInt64 i=nbAlignedElts; i<nbElts; ++i)
44  buffer[i] = value;
45  }
46 };
47 
50 
51 } // end of namespace detail
52 } // end of namespace simd
53 } // end of namespace ipsdk
54 
55 #endif // __IPSDKUTIL_INSTRUCTIONSET_DETAIL_AVX512_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
(including fundation and byte and word instructions)
Definition: InstructionSetTypes.h:51
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
Definition: UnloadReg.h:30
Definition: AssignRegDecl.h:31
structure used to retrieve AVX512 type associated to a base type
Definition: Avx512Types.h:36