10#ifndef EIGEN_TYPE_CASTING_AVX512_H
11#define EIGEN_TYPE_CASTING_AVX512_H
17template<> EIGEN_STRONG_INLINE Packet16i pcast<Packet16f, Packet16i>(
const Packet16f& a) {
18 return _mm512_cvttps_epi32(a);
21template<> EIGEN_STRONG_INLINE Packet16f pcast<Packet16i, Packet16f>(
const Packet16i& a) {
22 return _mm512_cvtepi32_ps(a);
25template<> EIGEN_STRONG_INLINE Packet16i preinterpret<Packet16i, Packet16f>(
const Packet16f& a) {
26 return _mm512_castps_si512(a);
29template<> EIGEN_STRONG_INLINE Packet16f preinterpret<Packet16f, Packet16i>(
const Packet16i& a) {
30 return _mm512_castsi512_ps(a);
34struct type_casting_traits<half, float> {
42template<> EIGEN_STRONG_INLINE Packet16f pcast<Packet16h, Packet16f>(
const Packet16h& a) {
47struct type_casting_traits<float, half> {
55template<> EIGEN_STRONG_INLINE Packet16h pcast<Packet16f, Packet16h>(
const Packet16f& a) {
60struct type_casting_traits<bfloat16, float> {
68template<> EIGEN_STRONG_INLINE Packet16f pcast<Packet16bf, Packet16f>(
const Packet16bf& a) {
73struct type_casting_traits<float, bfloat16> {
81template<> EIGEN_STRONG_INLINE Packet16bf pcast<Packet16f, Packet16bf>(
const Packet16f& a) {
Namespace containing all symbols from the Eigen library.
Definition: Core:141