15 #ifndef __IPSDKUTIL_INSTRUCTIONSET_DETAIL_AVX512_ASSIGNREGIMPL_H__ 16 #define __IPSDKUTIL_INSTRUCTIONSET_DETAIL_AVX512_ASSIGNREGIMPL_H__ 30 typename Avx512Type<T>::Type
32 typename boost::enable_if_c<sizeof(T) == 1>::type>::act(
const T& value)
34 return _mm512_set1_epi8(value);
41 typename boost::enable_if_c<sizeof(T) == 1>::type>::act(
typename Avx512Type<T>::Type& reg,
const T& value)
43 reg = _mm512_set1_epi8(value);
48 typename Avx512Type<T>::Type
50 typename boost::enable_if_c<sizeof(T) == 2>::type>::act(
const T& value)
52 return _mm512_set1_epi16(value);
59 typename boost::enable_if_c<sizeof(T) == 2>::type>::act(
typename Avx512Type<T>::Type& reg,
const T& value)
61 reg = _mm512_set1_epi16(value);
66 typename Avx512Type<T>::Type
68 typename boost::enable_if_c<boost::is_integral<T>::value
69 &&
sizeof(T) == 4>::type>::act(
const T& value)
71 return _mm512_set1_epi32(value);
78 typename boost::enable_if_c<boost::is_integral<T>::value
79 &&
sizeof(T) == 4>::type>::act(
typename Avx512Type<T>::Type& reg,
const T& value)
81 reg = _mm512_set1_epi32(value);
86 typename Avx512Type<T>::Type
88 typename boost::enable_if_c<boost::is_integral<T>::value
89 &&
sizeof(T) == 8>::type>::act(
const T& value)
91 return _mm512_set1_epi64(value);
98 typename boost::enable_if_c<boost::is_integral<T>::value
99 &&
sizeof(T) == 8>::type>::act(
typename Avx512Type<T>::Type& reg,
const T& value)
101 reg = _mm512_set1_epi64(value);
106 Avx512Type<ipReal32>::Type
107 AssignReg<eInstructionSet::eIS_Avx512, ipReal32>::act(
const ipReal32& value)
109 return _mm512_set1_ps(value);
114 AssignReg<eInstructionSet::eIS_Avx512, ipReal32>::act(Avx512Type<ipReal32>::Type& reg,
const ipReal32& value)
116 reg = _mm512_set1_ps(value);
121 Avx512Type<ipReal64>::Type
122 AssignReg<eInstructionSet::eIS_Avx512, ipReal64>::act(
const ipReal64& value)
124 return _mm512_set1_pd(value);
129 AssignReg<eInstructionSet::eIS_Avx512, ipReal64>::act(Avx512Type<ipReal64>::Type& reg,
const ipReal64& value)
131 reg = _mm512_set1_pd(value);
141 #endif // __IPSDKUTIL_INSTRUCTIONSET_DETAIL_AVX512_ASSIGNREGIMPL_H__ 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
float ipReal32
Base types definition.
Definition: BaseTypes.h:56