15 #ifndef __IPSDKUTIL_INSTRUCTIONSET_DETAIL_AVX_BITWISECASTREG_H__ 16 #define __IPSDKUTIL_INSTRUCTIONSET_DETAIL_AVX_BITWISECASTREG_H__ 22 #include <boost/mpl/and.hpp> 31 template <
typename TIn>
33 typename boost::enable_if<typename boost::mpl::and_<typename boost::mpl::equal_to<boost::mpl::int_<sizeof(TIn)>, boost::mpl::int_<4> >::type,
34 typename boost::is_integral<TIn>::type>::type>::type>
37 static IPSDK_FORCEINLINE
41 return _mm256_castsi256_ps(in);
44 static IPSDK_FORCEINLINE
49 out = _mm256_castsi256_ps(in);
53 template <
typename TOut>
55 typename boost::enable_if<typename boost::mpl::and_<typename boost::mpl::equal_to<boost::mpl::int_<sizeof(TOut)>, boost::mpl::int_<4> >::type,
56 typename boost::is_integral<TOut>::type>::type>::type>
59 static IPSDK_FORCEINLINE
62 return _mm256_castps_si256(in);
65 static IPSDK_FORCEINLINE
70 out = _mm256_castps_si256(in);
81 #endif // __IPSDKUTIL_INSTRUCTIONSET_DETAIL_AVX_BITWISECASTREG_H__ Defines the IPSDK_FORCEINLINE.
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
Predefined types for Avx instruction set management.
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.
Definition: BitwiseCastReg.h:29
structure used to retrieve AVX type associated to a base type
Definition: AvxTypes.h:33
float ipReal32
Base types definition.
Definition: BaseTypes.h:56