15 #ifndef __IPSDKUTIL_INSTRUCTIONSET_REDUCTION_DETAIL_AVX_SUMPACK_H__ 16 #define __IPSDKUTIL_INSTRUCTIONSET_REDUCTION_DETAIL_AVX_SUMPACK_H__ 35 static IPSDK_FORCEINLINE
40 res._val[0] = _mm256_add_pd(in._val[0], in._val[1]);
41 res._val[0] = _mm256_add_pd(res._val[0], in._val[2]);
42 res._val[0] = _mm256_add_pd(res._val[0], in._val[3]);
43 res._val[0] = _mm256_add_pd(res._val[0], in._val[4]);
44 res._val[0] = _mm256_add_pd(res._val[0], in._val[5]);
45 res._val[0] = _mm256_add_pd(res._val[0], in._val[6]);
46 res._val[0] = _mm256_add_pd(res._val[0], in._val[7]);
49 _mm256_storeu_pd(tab, res._val[0]);
51 return tab[0] + tab[1] + tab[2] + tab[3];
60 static IPSDK_FORCEINLINE
65 cast<eInstructionSet::eIS_Avx, ipReal64>(in));
77 #endif // __IPSDKUTIL_INSTRUCTIONSET_REDUCTION_DETAIL_AVX_SUMPACK_H__ Defines the IPSDK_FORCEINLINE.
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
cast function; casts a Pack<instructionSet, TIn> to a Pack<instructionSet, TOut>
double ipReal64
Base types definition.
Definition: BaseTypes.h:57
eInstructionSet
Enumerate for processor instruction set description.
Definition: InstructionSetTypes.h:31
template structure UpperType<typename T>; its typedef Type gives the type just upper to T...
Definition: UpperType.h:42
Advanced Vector Extensions.
Definition: InstructionSetTypes.h:44
structure SumPack<eInstructionSet::domain instructionSet, typename T, typename Enable=void> ...
Definition: SumPack.h:40
specialization of ipsdk::simd::detail::AddReg structure for AVX instruction set
Definition of import/export macro for library.
float ipReal32
Base types definition.
Definition: BaseTypes.h:56
structure containing intrinsic registers used to store vectorized data
Definition: BasePackDecl.h:29