15 #ifndef __IPSDKUTIL_INSTRUCTIONSET_DETAIL_AVX512_BITWISECASTREG_H__ 16 #define __IPSDKUTIL_INSTRUCTIONSET_DETAIL_AVX512_BITWISECASTREG_H__ 23 #include <boost/mpl/and.hpp> 32 template <
typename TIn,
typename TOut>
37 typename boost::enable_if<
38 typename boost::mpl::and_<
39 typename boost::is_integral<TIn>::type,
40 typename boost::is_integral<TOut>::type
45 static IPSDK_FORCEINLINE
52 static IPSDK_FORCEINLINE
61 template <
typename TIn>
63 typename boost::enable_if<typename boost::is_integral<TIn>::type>::type>
66 static IPSDK_FORCEINLINE
70 return _mm512_castsi512_ps(in);
73 static IPSDK_FORCEINLINE
78 out = _mm512_castsi512_ps(in);
81 static IPSDK_FORCEINLINE
90 template <
typename TOut>
92 typename boost::enable_if<typename boost::is_integral<TOut>::type>::type>
94 static IPSDK_FORCEINLINE
97 return _mm512_castps_si512(in);
100 static IPSDK_FORCEINLINE
105 out = _mm512_castps_si512(in);
108 static IPSDK_FORCEINLINE
117 template <
typename TIn>
119 typename boost::enable_if<typename boost::is_integral<TIn>::type>::type>
122 static IPSDK_FORCEINLINE
126 return _mm512_castsi512_pd(in);
129 static IPSDK_FORCEINLINE
134 out = _mm512_castsi512_pd(in);
137 static IPSDK_FORCEINLINE
146 template <
typename TOut>
148 typename boost::enable_if<typename boost::is_integral<TOut>::type>::type>
150 static IPSDK_FORCEINLINE
153 return _mm512_castpd_si512(in);
156 static IPSDK_FORCEINLINE
161 out = _mm512_castpd_si512(in);
164 static IPSDK_FORCEINLINE
180 #endif // __IPSDKUTIL_INSTRUCTIONSET_DETAIL_AVX512_BITWISECASTREG_H__ Defines the IPSDK_FORCEINLINE.
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
double ipReal64
Base types definition.
Definition: BaseTypes.h:57
(including fundation and byte and word instructions)
Definition: InstructionSetTypes.h:51
Predefined mask types for Avx512 instruction set management.
eInstructionSet
Enumerate for processor instruction set description.
Definition: InstructionSetTypes.h:31
Predefined types for Avx512 instruction set management.
Definition: Avx512MaskTypes.h:36
Definition of import/export macro for library.
Definition: BitwiseCastReg.h:29
float ipReal32
Base types definition.
Definition: BaseTypes.h:56
structure used to retrieve AVX512 type associated to a base type
Definition: Avx512Types.h:36