mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-08-12 11:49:02 +08:00
Fix missing header inclusion and colliding definitions for half type casting, which broke
build with -march=native on Haswell/Skylake.
This commit is contained in:
parent
bc40d4522c
commit
f6c51d9209
@ -172,6 +172,7 @@ using std::ptrdiff_t;
|
|||||||
#include "src/Core/arch/AVX/TypeCasting.h"
|
#include "src/Core/arch/AVX/TypeCasting.h"
|
||||||
#include "src/Core/arch/AVX/Complex.h"
|
#include "src/Core/arch/AVX/Complex.h"
|
||||||
#include "src/Core/arch/AVX512/PacketMath.h"
|
#include "src/Core/arch/AVX512/PacketMath.h"
|
||||||
|
#include "src/Core/arch/AVX512/TypeCasting.h"
|
||||||
#include "src/Core/arch/AVX512/Complex.h"
|
#include "src/Core/arch/AVX512/Complex.h"
|
||||||
#include "src/Core/arch/SSE/MathFunctions.h"
|
#include "src/Core/arch/SSE/MathFunctions.h"
|
||||||
#include "src/Core/arch/AVX/MathFunctions.h"
|
#include "src/Core/arch/AVX/MathFunctions.h"
|
||||||
|
@ -52,6 +52,7 @@ template<> EIGEN_STRONG_INLINE Packet8f preinterpret<Packet8f,Packet8i>(const Pa
|
|||||||
return _mm256_castsi256_ps(a);
|
return _mm256_castsi256_ps(a);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef EIGEN_VECTORIZE_AVX512
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct type_casting_traits<Eigen::half, float> {
|
struct type_casting_traits<Eigen::half, float> {
|
||||||
@ -75,6 +76,8 @@ struct type_casting_traits<float, Eigen::half> {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#endif // EIGEN_VECTORIZE_AVX512
|
||||||
|
|
||||||
template<> EIGEN_STRONG_INLINE Packet8h pcast<Packet8f, Packet8h>(const Packet8f& a) {
|
template<> EIGEN_STRONG_INLINE Packet8h pcast<Packet8f, Packet8h>(const Packet8f& a) {
|
||||||
return float2half(a);
|
return float2half(a);
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,19 @@
|
|||||||
|
// This file is part of Eigen, a lightweight C++ template library
|
||||||
|
// for linear algebra.
|
||||||
|
//
|
||||||
|
// Copyright (C) 2019 Rasmus Munk Larsen <rmlarsen@google.com>
|
||||||
|
//
|
||||||
|
// This Source Code Form is subject to the terms of the Mozilla
|
||||||
|
// Public License v. 2.0. If a copy of the MPL was not distributed
|
||||||
|
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
|
#ifndef EIGEN_TYPE_CASTING_AVX512_H
|
||||||
|
#define EIGEN_TYPE_CASTING_AVX512_H
|
||||||
|
|
||||||
|
namespace Eigen {
|
||||||
|
|
||||||
|
namespace internal {
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct type_casting_traits<half, float> {
|
struct type_casting_traits<half, float> {
|
||||||
enum {
|
enum {
|
||||||
@ -23,3 +39,9 @@ struct type_casting_traits<float, half> {
|
|||||||
template<> EIGEN_STRONG_INLINE Packet16h pcast<Packet16f, Packet16h>(const Packet16f& a) {
|
template<> EIGEN_STRONG_INLINE Packet16h pcast<Packet16f, Packet16h>(const Packet16f& a) {
|
||||||
return float2half(a);
|
return float2half(a);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} // end namespace internal
|
||||||
|
|
||||||
|
} // end namespace Eigen
|
||||||
|
|
||||||
|
#endif // EIGEN_TYPE_CASTING_AVX512_H
|
||||||
|
Loading…
x
Reference in New Issue
Block a user