20 #ifndef VC_AVX_HELPERIMPL_H
21 #define VC_AVX_HELPERIMPL_H
59 template<
typename V,
typename M,
typename A>
63 template<
typename V,
typename M,
typename A>
68 template<
typename V,
typename M,
typename A>
73 template<
typename V,
typename M,
typename A>
78 template<
typename V,
typename M,
typename A>
90 template<Vc::MallocAlignment A>
99 #include "deinterleave.tcc"
100 #include "prefetches.tcc"
101 #include "helperimpl.tcc"
104 #endif // VC_AVX_HELPERIMPL_H
Vc_ALWAYS_INLINE void deinterleave(V *a, V *b, const M *memory, A align)
Loads two vectors of values from an interleaved array.
AVX::Vector< float > float_v
Vc_ALWAYS_INLINE void prefetchForModify(const void *addr)
Prefetch the cacheline containing addr for modification.
Vc_ALWAYS_INLINE void free(T *p)
Frees memory that was allocated with Vc::malloc.
Vc_ALWAYS_INLINE void prefetchForOneRead(const void *addr)
Prefetch the cacheline containing addr for a single read access.
Vc_ALWAYS_INLINE void prefetchClose(const void *addr)
Prefetch the cacheline containing addr to L1 cache.
#define Vc_ALWAYS_INLINE_R
AVX::Vector< sfloat > sfloat_v
Vc_ALWAYS_INLINE void prefetchMid(const void *addr)
Prefetch the cacheline containing addr to L2 cache.
Vc_ALWAYS_INLINE void prefetchFar(const void *addr)
Prefetch the cacheline containing addr to L3 cache.
AVX::Vector< unsigned short > ushort_v
AVX::Vector< double > double_v
AVX::Vector< unsigned int > uint_v
#define Vc_ALWAYS_INLINE_L
AVX::Vector< short > short_v
Vc_ALWAYS_INLINE_L T *Vc_ALWAYS_INLINE_R malloc(size_t n)
Allocates memory on the Heap with alignment and padding suitable for vectorized access.