Add EIGEN_STRONG_INLINE where required

This commit is contained in:
Gael Guennebaud 2018-12-24 10:45:01 +01:00
parent 961ff567e8
commit 4aa667b510

View File

@ -263,14 +263,14 @@ EIGEN_STRONG_INLINE Packet8d pmax<Packet8d>(const Packet8d& a,
}
#ifdef EIGEN_VECTORIZE_AVX512DQ
template<int I> Packet8f extract256(Packet16f x) { return _mm512_extractf32x8_ps(x,I); }
Packet16f cat256(Packet8f a, Packet8f b) { return _mm512_insertf32x8(_mm512_castps256_ps512(a),b,1); }
template<int I> EIGEN_STRONG_INLINE Packet8f extract256(Packet16f x) { return _mm512_extractf32x8_ps(x,I); }
EIGEN_STRONG_INLINE Packet16f cat256(Packet8f a, Packet8f b) { return _mm512_insertf32x8(_mm512_castps256_ps512(a),b,1); }
#else
// AVX512F does not define _mm512_extractf32x8_ps to extract _m256 from _m512
template<int I> Packet8f extract256(Packet16f x) {
template<int I> EIGEN_STRONG_INLINE Packet8f extract256(Packet16f x) {
return _mm256_castsi256_ps(_mm512_extracti64x4_epi64( _mm512_castps_si512(x),I));
}
Packet16f cat256(Packet8f a, Packet8f b) {
EIGEN_STRONG_INLINE Packet16f cat256(Packet8f a, Packet8f b) {
return _mm512_castsi512_ps(_mm512_inserti64x4(_mm512_castsi256_si512(_mm256_castps_si256(a)),
_mm256_castps_si256(b),1));
}