15 #ifndef __IPSDKUTIL_INSTRUCTIONSET_DETAIL_AVX_CASTREG_H__ 16 #define __IPSDKUTIL_INSTRUCTIONSET_DETAIL_AVX_CASTREG_H__ 30 template <
typename TIn,
typename TOut>
32 typename boost::enable_if_c<
33 boost::is_same<TIn, TOut>::value || (boost::is_integral<TIn>::value
34 && boost::is_integral<TOut>::value && sizeof(TIn)==sizeof(TOut))
38 static IPSDK_FORCEINLINE
51 static IPSDK_FORCEINLINE
55 out = _mm256_cvtepi32_ps(in);
64 static IPSDK_FORCEINLINE
68 out = _mm256_cvttps_epi32(in);
77 static IPSDK_FORCEINLINE
82 out = _mm256_castps128_ps256(_mm256_cvtpd_ps(inl));
83 out = _mm256_insertf128_ps(out, _mm256_cvtpd_ps(inh), 1);
92 static IPSDK_FORCEINLINE
97 outl = _mm256_cvtps_pd(_mm256_extractf128_ps(in, 0));
98 outh = _mm256_cvtps_pd(_mm256_extractf128_ps(in, 1));
109 #endif // __IPSDKUTIL_INSTRUCTIONSET_DETAIL_AVX_CASTREG_H__
Defines the IPSDK_FORCEINLINE.
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
double ipReal64
Base types definition.
Definition: BaseTypes.h:57
int32_t ipInt32
Base types definition.
Definition: BaseTypes.h:52
eInstructionSet
Enumerate for processor instruction set description.
Definition: InstructionSetTypes.h:31
Advanced Vector Extensions.
Definition: InstructionSetTypes.h:44
Definition of import/export macro for library.
structure used to retrieve AVX type associated to a base type
Definition: AvxTypes.h:33
float ipReal32
Base types definition.
Definition: BaseTypes.h:56