20 #ifndef VC_SSE_DEINTERLEAVE_H
21 #define VC_SSE_DEINTERLEAVE_H
67 template<Vc::MallocAlignment A>
82 #include "deinterleave.tcc"
83 #include "prefetches.tcc"
84 #include "helperimpl.tcc"
87 #endif // VC_SSE_DEINTERLEAVE_H
Vc_ALWAYS_INLINE void deinterleave(V *a, V *b, const M *memory, A align)
Loads two vectors of values from an interleaved array.
x86 SSE + SSE2 + SSE3 + SSSE3 + SSE4.1 + SSE4.2
SSE::Vector< double > double_v
SSE::Vector< short > short_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.
x86 SSE + SSE2 + SSE3 + SSSE3 + SSE4.1
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
SSE::Vector< unsigned int > uint_v
Vc_ALWAYS_INLINE void prefetchMid(const void *addr)
Prefetch the cacheline containing addr to L2 cache.
SSE::Vector< unsigned short > ushort_v
Vc_ALWAYS_INLINE void prefetchFar(const void *addr)
Prefetch the cacheline containing addr to L3 cache.
SSE::Vector< SSE::float8 > sfloat_v
#define Vc_ALWAYS_INLINE_L
x86 SSE + SSE2 + SSE3 + SSSE3
SSE::Vector< float > float_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.