IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
Reg128_256ConvertTools.h
Go to the documentation of this file.
1 // Reg128_256ConvertTools.h:
3 // -------------------
4 //
15 
16 #ifndef __IPSDKUTIL_INSTRUCTIONSET_DETAIL_AVX_REG128_256_CONVERTTOOLS_H__
17 #define __IPSDKUTIL_INSTRUCTIONSET_DETAIL_AVX_REG128_256_CONVERTTOOLS_H__
18 
19 namespace ipsdk {
20 namespace simd {
21 namespace detail {
22 
23 typedef union imm_xmm_union {
24  __m256i imm;
25  __m128i xmm[2];
27 
28 #ifdef IPSDK_WINDOWS
29 typedef __declspec (align(32)) imm_xmm_union aligned_imm_xmm_union;
30 #else
31 typedef union imm_xmm_union __attribute__((aligned(32))) aligned_imm_xmm_union;
32 #endif
33 
34 #define COPY_IMM_TO_XMM(imm_, xmm0_, xmm1_) { \
35  aligned_imm_xmm_union u; \
36  u.imm = imm_; \
37  xmm0_ = u.xmm[0]; \
38  xmm1_ = u.xmm[1]; \
39 }
40 
41 #define COPY_XMM_TO_IMM(xmm0_, xmm1_, imm_) { \
42  aligned_imm_xmm_union u; \
43  u.xmm[0]=xmm0_; u.xmm[1]=xmm1_; imm_ = u.imm; \
44 }
45 
46 } // end of namespace detail
47 } // end of namespace simd
48 } // end of namespace ipsdk
49 
50 #endif // __IPSDKUTIL_INSTRUCTIONSET_DETAIL_AVX_REG128_256_CONVERTTOOLS_H__
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
Definition: Reg128_256ConvertTools.h:23