Classes | Namespaces | Macros | Typedefs | Functions
AVX512/PacketMath.h File Reference

Go to the source code of this file.

Classes

struct  Eigen::internal::is_arithmetic< __m512 >
 
struct  Eigen::internal::is_arithmetic< __m512d >
 
struct  Eigen::internal::is_arithmetic< __m512i >
 
struct  Eigen::internal::packet_traits< double >
 
struct  Eigen::internal::packet_traits< float >
 
struct  Eigen::internal::palign_impl< Offset, Packet16f >
 
struct  Eigen::internal::palign_impl< Offset, Packet8d >
 
struct  Eigen::internal::unpacket_traits< Packet16f >
 
struct  Eigen::internal::unpacket_traits< Packet16i >
 
struct  Eigen::internal::unpacket_traits< Packet8d >
 

Namespaces

 Eigen
 
 Eigen::internal
 

Macros

#define EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS   (2*sizeof(void*))
 
#define EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD   8
 
#define EIGEN_EXTRACT_8f_FROM_16f(INPUT, OUTPUT)
 
#define EIGEN_INSERT_8f_INTO_16f(OUTPUT, INPUTA, INPUTB)
 
#define PACK_OUTPUT(OUTPUT, INPUT, INDEX, STRIDE)   EIGEN_INSERT_8f_INTO_16f(OUTPUT[INDEX], INPUT[INDEX], INPUT[INDEX + STRIDE]);
 
#define PACK_OUTPUT_2(OUTPUT, INPUT, INDEX, STRIDE)
 
#define PACK_OUTPUT_D(OUTPUT, INPUT, INDEX, STRIDE)
 
#define PACK_OUTPUT_SQ_D(OUTPUT, INPUT, INDEX, STRIDE)
 

Typedefs

typedef __m512 Eigen::internal::Packet16f
 
typedef __m512i Eigen::internal::Packet16i
 
typedef __m512d Eigen::internal::Packet8d
 

Functions

template<>
EIGEN_STRONG_INLINE Packet16f Eigen::internal::pabs (const Packet16f &a)
 
template<>
EIGEN_STRONG_INLINE Packet8d Eigen::internal::pabs (const Packet8d &a)
 
template<>
EIGEN_STRONG_INLINE Packet16f Eigen::internal::padd< Packet16f > (const Packet16f &a, const Packet16f &b)
 
template<>
EIGEN_STRONG_INLINE Packet8d Eigen::internal::padd< Packet8d > (const Packet8d &a, const Packet8d &b)
 
template<>
EIGEN_STRONG_INLINE Packet16f Eigen::internal::pand< Packet16f > (const Packet16f &a, const Packet16f &b)
 
template<>
EIGEN_STRONG_INLINE Packet8d Eigen::internal::pand< Packet8d > (const Packet8d &a, const Packet8d &b)
 
template<>
EIGEN_STRONG_INLINE Packet16f Eigen::internal::pandnot< Packet16f > (const Packet16f &a, const Packet16f &b)
 
template<>
EIGEN_STRONG_INLINE Packet8d Eigen::internal::pandnot< Packet8d > (const Packet8d &a, const Packet8d &b)
 
template<>
EIGEN_STRONG_INLINE Packet16f Eigen::internal::pblend (const Selector< 16 > &, const Packet16f &, const Packet16f &)
 
template<>
EIGEN_STRONG_INLINE Packet8d Eigen::internal::pblend (const Selector< 8 > &, const Packet8d &, const Packet8d &)
 
template<>
EIGEN_STRONG_INLINE Packet16f Eigen::internal::pconj (const Packet16f &a)
 
template<>
EIGEN_STRONG_INLINE Packet8d Eigen::internal::pconj (const Packet8d &a)
 
template<>
EIGEN_STRONG_INLINE Packet16i Eigen::internal::pconj (const Packet16i &a)
 
template<>
EIGEN_STRONG_INLINE Packet16f Eigen::internal::pdiv< Packet16f > (const Packet16f &a, const Packet16f &b)
 
template<>
EIGEN_STRONG_INLINE Packet8d Eigen::internal::pdiv< Packet8d > (const Packet8d &a, const Packet8d &b)
 
template<>
EIGEN_STRONG_INLINE float Eigen::internal::pfirst< Packet16f > (const Packet16f &a)
 
template<>
EIGEN_STRONG_INLINE int Eigen::internal::pfirst< Packet16i > (const Packet16i &a)
 
template<>
EIGEN_STRONG_INLINE double Eigen::internal::pfirst< Packet8d > (const Packet8d &a)
 
template<>
EIGEN_DEVICE_FUNC Packet8d Eigen::internal::pgather< double, Packet8d > (const double *from, Index stride)
 
template<>
EIGEN_DEVICE_FUNC Packet16f Eigen::internal::pgather< float, Packet16f > (const float *from, Index stride)
 
template<>
EIGEN_STRONG_INLINE Packet16f Eigen::internal::pload1< Packet16f > (const float *from)
 
template<>
EIGEN_STRONG_INLINE Packet8d Eigen::internal::pload1< Packet8d > (const double *from)
 
template<>
EIGEN_STRONG_INLINE Packet16f Eigen::internal::pload< Packet16f > (const float *from)
 
template<>
EIGEN_STRONG_INLINE Packet16i Eigen::internal::pload< Packet16i > (const int *from)
 
template<>
EIGEN_STRONG_INLINE Packet8d Eigen::internal::pload< Packet8d > (const double *from)
 
template<>
EIGEN_STRONG_INLINE Packet16f Eigen::internal::ploaddup< Packet16f > (const float *from)
 
template<>
EIGEN_STRONG_INLINE Packet8d Eigen::internal::ploaddup< Packet8d > (const double *from)
 
template<>
EIGEN_STRONG_INLINE Packet16f Eigen::internal::ploadquad< Packet16f > (const float *from)
 
template<>
EIGEN_STRONG_INLINE Packet8d Eigen::internal::ploadquad< Packet8d > (const double *from)
 
template<>
EIGEN_STRONG_INLINE Packet16f Eigen::internal::ploadu< Packet16f > (const float *from)
 
template<>
EIGEN_STRONG_INLINE Packet16i Eigen::internal::ploadu< Packet16i > (const int *from)
 
template<>
EIGEN_STRONG_INLINE Packet8d Eigen::internal::ploadu< Packet8d > (const double *from)
 
template<>
EIGEN_STRONG_INLINE Packet16f Eigen::internal::plset< Packet16f > (const float &a)
 
template<>
EIGEN_STRONG_INLINE Packet8d Eigen::internal::plset< Packet8d > (const double &a)
 
template<>
EIGEN_STRONG_INLINE Packet16f Eigen::internal::pmax< Packet16f > (const Packet16f &a, const Packet16f &b)
 
template<>
EIGEN_STRONG_INLINE Packet8d Eigen::internal::pmax< Packet8d > (const Packet8d &a, const Packet8d &b)
 
template<>
EIGEN_STRONG_INLINE Packet16f Eigen::internal::pmin< Packet16f > (const Packet16f &a, const Packet16f &b)
 
template<>
EIGEN_STRONG_INLINE Packet8d Eigen::internal::pmin< Packet8d > (const Packet8d &a, const Packet8d &b)
 
template<>
EIGEN_STRONG_INLINE Packet16f Eigen::internal::pmul< Packet16f > (const Packet16f &a, const Packet16f &b)
 
template<>
EIGEN_STRONG_INLINE Packet8d Eigen::internal::pmul< Packet8d > (const Packet8d &a, const Packet8d &b)
 
template<>
EIGEN_STRONG_INLINE Packet16f Eigen::internal::pnegate (const Packet16f &a)
 
template<>
EIGEN_STRONG_INLINE Packet8d Eigen::internal::pnegate (const Packet8d &a)
 
template<>
EIGEN_STRONG_INLINE Packet16f Eigen::internal::por< Packet16f > (const Packet16f &a, const Packet16f &b)
 
template<>
EIGEN_STRONG_INLINE Packet8d Eigen::internal::por< Packet8d > (const Packet8d &a, const Packet8d &b)
 
template<>
EIGEN_STRONG_INLINE float Eigen::internal::predux< Packet16f > (const Packet16f &a)
 
template<>
EIGEN_STRONG_INLINE double Eigen::internal::predux< Packet8d > (const Packet8d &a)
 
template<>
EIGEN_STRONG_INLINE Packet8f Eigen::internal::predux_downto4< Packet16f > (const Packet16f &a)
 
template<>
EIGEN_STRONG_INLINE Packet4d Eigen::internal::predux_downto4< Packet8d > (const Packet8d &a)
 
template<>
EIGEN_STRONG_INLINE float Eigen::internal::predux_max< Packet16f > (const Packet16f &a)
 
template<>
EIGEN_STRONG_INLINE double Eigen::internal::predux_max< Packet8d > (const Packet8d &a)
 
template<>
EIGEN_STRONG_INLINE float Eigen::internal::predux_min< Packet16f > (const Packet16f &a)
 
template<>
EIGEN_STRONG_INLINE double Eigen::internal::predux_min< Packet8d > (const Packet8d &a)
 
template<>
EIGEN_STRONG_INLINE float Eigen::internal::predux_mul< Packet16f > (const Packet16f &a)
 
template<>
EIGEN_STRONG_INLINE double Eigen::internal::predux_mul< Packet8d > (const Packet8d &a)
 
template<>
EIGEN_STRONG_INLINE Packet16f Eigen::internal::preduxp< Packet16f > (const Packet16f *vecs)
 
template<>
EIGEN_STRONG_INLINE Packet8d Eigen::internal::preduxp< Packet8d > (const Packet8d *vecs)
 
template<>
EIGEN_STRONG_INLINE void Eigen::internal::prefetch< double > (const double *addr)
 
template<>
EIGEN_STRONG_INLINE void Eigen::internal::prefetch< float > (const float *addr)
 
template<>
EIGEN_STRONG_INLINE void Eigen::internal::prefetch< int > (const int *addr)
 
template<>
EIGEN_STRONG_INLINE Packet16f Eigen::internal::preverse (const Packet16f &a)
 
template<>
EIGEN_STRONG_INLINE Packet8d Eigen::internal::preverse (const Packet8d &a)
 
template<>
EIGEN_DEVICE_FUNC void Eigen::internal::pscatter< double, Packet8d > (double *to, const Packet8d &from, Index stride)
 
template<>
EIGEN_DEVICE_FUNC void Eigen::internal::pscatter< float, Packet16f > (float *to, const Packet16f &from, Index stride)
 
template<>
EIGEN_STRONG_INLINE Packet16f Eigen::internal::pset1< Packet16f > (const float &from)
 
template<>
EIGEN_STRONG_INLINE Packet16i Eigen::internal::pset1< Packet16i > (const int &from)
 
template<>
EIGEN_STRONG_INLINE Packet8d Eigen::internal::pset1< Packet8d > (const double &from)
 
template<>
EIGEN_STRONG_INLINE void Eigen::internal::pstore1< Packet16f > (float *to, const float &a)
 
template<>
EIGEN_STRONG_INLINE void Eigen::internal::pstore1< Packet16i > (int *to, const int &a)
 
template<>
EIGEN_STRONG_INLINE void Eigen::internal::pstore1< Packet8d > (double *to, const double &a)
 
template<>
EIGEN_STRONG_INLINE void Eigen::internal::pstore< double > (double *to, const Packet8d &from)
 
template<>
EIGEN_STRONG_INLINE void Eigen::internal::pstore< float > (float *to, const Packet16f &from)
 
template<>
EIGEN_STRONG_INLINE void Eigen::internal::pstore< int > (int *to, const Packet16i &from)
 
template<>
EIGEN_STRONG_INLINE void Eigen::internal::pstoreu< double > (double *to, const Packet8d &from)
 
template<>
EIGEN_STRONG_INLINE void Eigen::internal::pstoreu< float > (float *to, const Packet16f &from)
 
template<>
EIGEN_STRONG_INLINE void Eigen::internal::pstoreu< int > (int *to, const Packet16i &from)
 
template<>
EIGEN_STRONG_INLINE Packet16f Eigen::internal::psub< Packet16f > (const Packet16f &a, const Packet16f &b)
 
template<>
EIGEN_STRONG_INLINE Packet8d Eigen::internal::psub< Packet8d > (const Packet8d &a, const Packet8d &b)
 
EIGEN_DEVICE_FUNC void Eigen::internal::ptranspose (PacketBlock< Packet16f, 16 > &kernel)
 
EIGEN_DEVICE_FUNC void Eigen::internal::ptranspose (PacketBlock< Packet16f, 4 > &kernel)
 
EIGEN_DEVICE_FUNC void Eigen::internal::ptranspose (PacketBlock< Packet8d, 4 > &kernel)
 
EIGEN_DEVICE_FUNC void Eigen::internal::ptranspose (PacketBlock< Packet8d, 8 > &kernel)
 
template<>
EIGEN_STRONG_INLINE Packet16f Eigen::internal::pxor< Packet16f > (const Packet16f &a, const Packet16f &b)
 
template<>
EIGEN_STRONG_INLINE Packet8d Eigen::internal::pxor< Packet8d > (const Packet8d &a, const Packet8d &b)
 

Macro Definition Documentation

#define EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS   (2*sizeof(void*))

Definition at line 22 of file AVX512/PacketMath.h.

#define EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD   8

Definition at line 18 of file AVX512/PacketMath.h.

#define EIGEN_EXTRACT_8f_FROM_16f (   INPUT,
  OUTPUT 
)
Value:
__m256 OUTPUT##_0 = _mm256_insertf128_ps( \
_mm256_castps128_ps256(_mm512_extractf32x4_ps(INPUT, 0)), \
_mm512_extractf32x4_ps(INPUT, 1), 1); \
__m256 OUTPUT##_1 = _mm256_insertf128_ps( \
_mm256_castps128_ps256(_mm512_extractf32x4_ps(INPUT, 2)), \
_mm512_extractf32x4_ps(INPUT, 3), 1);

Definition at line 666 of file AVX512/PacketMath.h.

#define EIGEN_INSERT_8f_INTO_16f (   OUTPUT,
  INPUTA,
  INPUTB 
)
Value:
OUTPUT = _mm512_insertf32x4(OUTPUT, _mm256_extractf128_ps(INPUTA, 0), 0); \
OUTPUT = _mm512_insertf32x4(OUTPUT, _mm256_extractf128_ps(INPUTA, 1), 1); \
OUTPUT = _mm512_insertf32x4(OUTPUT, _mm256_extractf128_ps(INPUTB, 0), 2); \
OUTPUT = _mm512_insertf32x4(OUTPUT, _mm256_extractf128_ps(INPUTB, 1), 3);

Definition at line 680 of file AVX512/PacketMath.h.

#define PACK_OUTPUT (   OUTPUT,
  INPUT,
  INDEX,
  STRIDE 
)    EIGEN_INSERT_8f_INTO_16f(OUTPUT[INDEX], INPUT[INDEX], INPUT[INDEX + STRIDE]);

Definition at line 1046 of file AVX512/PacketMath.h.

#define PACK_OUTPUT_2 (   OUTPUT,
  INPUT,
  INDEX,
  STRIDE 
)
Value:
EIGEN_INSERT_8f_INTO_16f(OUTPUT[INDEX], INPUT[2 * INDEX], \
INPUT[2 * INDEX + STRIDE]);
#define EIGEN_INSERT_8f_INTO_16f(OUTPUT, INPUTA, INPUTB)

Definition at line 1160 of file AVX512/PacketMath.h.

#define PACK_OUTPUT_D (   OUTPUT,
  INPUT,
  INDEX,
  STRIDE 
)
Value:
OUTPUT[INDEX] = _mm512_insertf64x4(OUTPUT[INDEX], INPUT[(2 * INDEX)], 0); \
OUTPUT[INDEX] = \
_mm512_insertf64x4(OUTPUT[INDEX], INPUT[(2 * INDEX) + STRIDE], 1);

Definition at line 1202 of file AVX512/PacketMath.h.

#define PACK_OUTPUT_SQ_D (   OUTPUT,
  INPUT,
  INDEX,
  STRIDE 
)
Value:
OUTPUT[INDEX] = _mm512_insertf64x4(OUTPUT[INDEX], INPUT[INDEX], 0); \
OUTPUT[INDEX] = _mm512_insertf64x4(OUTPUT[INDEX], INPUT[INDEX + STRIDE], 1);

Definition at line 1198 of file AVX512/PacketMath.h.



hebiros
Author(s): Xavier Artache , Matthew Tesch
autogenerated on Thu Sep 3 2020 04:09:50