Grok 10.0.0
Classes | Namespaces | Macros | Functions
x86_512-inl.h File Reference
#include "hwy/base.h"
#include <immintrin.h>
#include <stddef.h>
#include <stdint.h>
#include "hwy/ops/x86_256-inl.h"

Go to the source code of this file.

Classes

struct  hwy::HWY_NAMESPACE::detail::Raw512< T >
 
struct  hwy::HWY_NAMESPACE::detail::Raw512< float >
 
struct  hwy::HWY_NAMESPACE::detail::Raw512< double >
 
struct  hwy::HWY_NAMESPACE::detail::RawMask512< size >
 
struct  hwy::HWY_NAMESPACE::detail::RawMask512< 1 >
 
struct  hwy::HWY_NAMESPACE::detail::RawMask512< 2 >
 
struct  hwy::HWY_NAMESPACE::detail::RawMask512< 4 >
 
struct  hwy::HWY_NAMESPACE::detail::RawMask512< 8 >
 
class  hwy::HWY_NAMESPACE::Vec512< T >
 
struct  hwy::HWY_NAMESPACE::Mask512< T >
 
struct  hwy::HWY_NAMESPACE::detail::BitCastFromInteger512< T >
 
struct  hwy::HWY_NAMESPACE::detail::BitCastFromInteger512< float >
 
struct  hwy::HWY_NAMESPACE::detail::BitCastFromInteger512< double >
 
struct  hwy::HWY_NAMESPACE::Indices512< T >
 

Namespaces

namespace  hwy
 
namespace  hwy::HWY_NAMESPACE
 
namespace  hwy::HWY_NAMESPACE::detail
 

Macros

#define HWY_NATIVE_POPCNT
 
#define HWY_NATIVE_AES
 

Functions

 HWY_BEFORE_NAMESPACE ()
 
HWY_INLINE __m512i hwy::HWY_NAMESPACE::detail::BitCastToInteger (__m512i v)
 
HWY_INLINE __m512i hwy::HWY_NAMESPACE::detail::BitCastToInteger (__m512 v)
 
HWY_INLINE __m512i hwy::HWY_NAMESPACE::detail::BitCastToInteger (__m512d v)
 
template<typename T >
HWY_INLINE Vec512< uint8_t > hwy::HWY_NAMESPACE::detail::BitCastToByte (Vec512< T > v)
 
template<typename T >
HWY_INLINE Vec512< T > hwy::HWY_NAMESPACE::detail::BitCastFromByte (Full512< T >, Vec512< uint8_t > v)
 
template<typename T , typename FromT >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::BitCast (Full512< T > d, Vec512< FromT > v)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Zero (Full512< T >)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::Zero (Full512< float >)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::Zero (Full512< double >)
 
HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::Set (Full512< uint8_t >, const uint8_t t)
 
HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::Set (Full512< uint16_t >, const uint16_t t)
 
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::Set (Full512< uint32_t >, const uint32_t t)
 
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::Set (Full512< uint64_t >, const uint64_t t)
 
HWY_API Vec512< int8_t > hwy::HWY_NAMESPACE::Set (Full512< int8_t >, const int8_t t)
 
HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::Set (Full512< int16_t >, const int16_t t)
 
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::Set (Full512< int32_t >, const int32_t t)
 
HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::Set (Full512< int64_t >, const int64_t t)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::Set (Full512< float >, const float t)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::Set (Full512< double >, const double t)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Undefined (Full512< T >)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::Undefined (Full512< float >)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::Undefined (Full512< double >)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Not (const Vec512< T > v)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::And (const Vec512< T > a, const Vec512< T > b)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::And (const Vec512< float > a, const Vec512< float > b)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::And (const Vec512< double > a, const Vec512< double > b)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::AndNot (const Vec512< T > not_mask, const Vec512< T > mask)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::AndNot (const Vec512< float > not_mask, const Vec512< float > mask)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::AndNot (const Vec512< double > not_mask, const Vec512< double > mask)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Or (const Vec512< T > a, const Vec512< T > b)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::Or (const Vec512< float > a, const Vec512< float > b)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::Or (const Vec512< double > a, const Vec512< double > b)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Xor (const Vec512< T > a, const Vec512< T > b)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::Xor (const Vec512< float > a, const Vec512< float > b)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::Xor (const Vec512< double > a, const Vec512< double > b)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Or3 (Vec512< T > o1, Vec512< T > o2, Vec512< T > o3)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::OrAnd (Vec512< T > o, Vec512< T > a1, Vec512< T > a2)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::IfVecThenElse (Vec512< T > mask, Vec512< T > yes, Vec512< T > no)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::operator& (const Vec512< T > a, const Vec512< T > b)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::operator| (const Vec512< T > a, const Vec512< T > b)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::operator^ (const Vec512< T > a, const Vec512< T > b)
 
template<typename T >
HWY_INLINE Vec512< T > hwy::HWY_NAMESPACE::detail::PopulationCount (hwy::SizeTag< 1 >, Vec512< T > v)
 
template<typename T >
HWY_INLINE Vec512< T > hwy::HWY_NAMESPACE::detail::PopulationCount (hwy::SizeTag< 2 >, Vec512< T > v)
 
template<typename T >
HWY_INLINE Vec512< T > hwy::HWY_NAMESPACE::detail::PopulationCount (hwy::SizeTag< 4 >, Vec512< T > v)
 
template<typename T >
HWY_INLINE Vec512< T > hwy::HWY_NAMESPACE::detail::PopulationCount (hwy::SizeTag< 8 >, Vec512< T > v)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::PopulationCount (Vec512< T > v)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::CopySign (const Vec512< T > magn, const Vec512< T > sign)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::CopySignToAbs (const Vec512< T > abs, const Vec512< T > sign)
 
template<typename T >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::FirstN (const Full512< T >, size_t n)
 
template<typename T >
HWY_INLINE Vec512< T > hwy::HWY_NAMESPACE::detail::IfThenElse (hwy::SizeTag< 1 >, const Mask512< T > mask, const Vec512< T > yes, const Vec512< T > no)
 
template<typename T >
HWY_INLINE Vec512< T > hwy::HWY_NAMESPACE::detail::IfThenElse (hwy::SizeTag< 2 >, const Mask512< T > mask, const Vec512< T > yes, const Vec512< T > no)
 
template<typename T >
HWY_INLINE Vec512< T > hwy::HWY_NAMESPACE::detail::IfThenElse (hwy::SizeTag< 4 >, const Mask512< T > mask, const Vec512< T > yes, const Vec512< T > no)
 
template<typename T >
HWY_INLINE Vec512< T > hwy::HWY_NAMESPACE::detail::IfThenElse (hwy::SizeTag< 8 >, const Mask512< T > mask, const Vec512< T > yes, const Vec512< T > no)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::IfThenElse (const Mask512< T > mask, const Vec512< T > yes, const Vec512< T > no)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::IfThenElse (const Mask512< float > mask, const Vec512< float > yes, const Vec512< float > no)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::IfThenElse (const Mask512< double > mask, const Vec512< double > yes, const Vec512< double > no)
 
template<typename T >
HWY_INLINE Vec512< T > hwy::HWY_NAMESPACE::detail::IfThenElseZero (hwy::SizeTag< 1 >, const Mask512< T > mask, const Vec512< T > yes)
 
template<typename T >
HWY_INLINE Vec512< T > hwy::HWY_NAMESPACE::detail::IfThenElseZero (hwy::SizeTag< 2 >, const Mask512< T > mask, const Vec512< T > yes)
 
template<typename T >
HWY_INLINE Vec512< T > hwy::HWY_NAMESPACE::detail::IfThenElseZero (hwy::SizeTag< 4 >, const Mask512< T > mask, const Vec512< T > yes)
 
template<typename T >
HWY_INLINE Vec512< T > hwy::HWY_NAMESPACE::detail::IfThenElseZero (hwy::SizeTag< 8 >, const Mask512< T > mask, const Vec512< T > yes)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::IfThenElseZero (const Mask512< T > mask, const Vec512< T > yes)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::IfThenElseZero (const Mask512< float > mask, const Vec512< float > yes)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::IfThenElseZero (const Mask512< double > mask, const Vec512< double > yes)
 
template<typename T >
HWY_INLINE Vec512< T > hwy::HWY_NAMESPACE::detail::IfThenZeroElse (hwy::SizeTag< 1 >, const Mask512< T > mask, const Vec512< T > no)
 
template<typename T >
HWY_INLINE Vec512< T > hwy::HWY_NAMESPACE::detail::IfThenZeroElse (hwy::SizeTag< 2 >, const Mask512< T > mask, const Vec512< T > no)
 
template<typename T >
HWY_INLINE Vec512< T > hwy::HWY_NAMESPACE::detail::IfThenZeroElse (hwy::SizeTag< 4 >, const Mask512< T > mask, const Vec512< T > no)
 
template<typename T >
HWY_INLINE Vec512< T > hwy::HWY_NAMESPACE::detail::IfThenZeroElse (hwy::SizeTag< 8 >, const Mask512< T > mask, const Vec512< T > no)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::IfThenZeroElse (const Mask512< T > mask, const Vec512< T > no)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::IfThenZeroElse (const Mask512< float > mask, const Vec512< float > no)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::IfThenZeroElse (const Mask512< double > mask, const Vec512< double > no)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::IfNegativeThenElse (Vec512< T > v, Vec512< T > yes, Vec512< T > no)
 
template<typename T , HWY_IF_FLOAT(T) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::ZeroIfNegative (const Vec512< T > v)
 
HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::operator+ (const Vec512< uint8_t > a, const Vec512< uint8_t > b)
 
HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::operator+ (const Vec512< uint16_t > a, const Vec512< uint16_t > b)
 
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::operator+ (const Vec512< uint32_t > a, const Vec512< uint32_t > b)
 
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::operator+ (const Vec512< uint64_t > a, const Vec512< uint64_t > b)
 
HWY_API Vec512< int8_t > hwy::HWY_NAMESPACE::operator+ (const Vec512< int8_t > a, const Vec512< int8_t > b)
 
HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::operator+ (const Vec512< int16_t > a, const Vec512< int16_t > b)
 
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::operator+ (const Vec512< int32_t > a, const Vec512< int32_t > b)
 
HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::operator+ (const Vec512< int64_t > a, const Vec512< int64_t > b)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::operator+ (const Vec512< float > a, const Vec512< float > b)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::operator+ (const Vec512< double > a, const Vec512< double > b)
 
HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::operator- (const Vec512< uint8_t > a, const Vec512< uint8_t > b)
 
HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::operator- (const Vec512< uint16_t > a, const Vec512< uint16_t > b)
 
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::operator- (const Vec512< uint32_t > a, const Vec512< uint32_t > b)
 
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::operator- (const Vec512< uint64_t > a, const Vec512< uint64_t > b)
 
HWY_API Vec512< int8_t > hwy::HWY_NAMESPACE::operator- (const Vec512< int8_t > a, const Vec512< int8_t > b)
 
HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::operator- (const Vec512< int16_t > a, const Vec512< int16_t > b)
 
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::operator- (const Vec512< int32_t > a, const Vec512< int32_t > b)
 
HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::operator- (const Vec512< int64_t > a, const Vec512< int64_t > b)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::operator- (const Vec512< float > a, const Vec512< float > b)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::operator- (const Vec512< double > a, const Vec512< double > b)
 
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::SumsOf8 (const Vec512< uint8_t > v)
 
HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::SaturatedAdd (const Vec512< uint8_t > a, const Vec512< uint8_t > b)
 
HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::SaturatedAdd (const Vec512< uint16_t > a, const Vec512< uint16_t > b)
 
HWY_API Vec512< int8_t > hwy::HWY_NAMESPACE::SaturatedAdd (const Vec512< int8_t > a, const Vec512< int8_t > b)
 
HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::SaturatedAdd (const Vec512< int16_t > a, const Vec512< int16_t > b)
 
HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::SaturatedSub (const Vec512< uint8_t > a, const Vec512< uint8_t > b)
 
HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::SaturatedSub (const Vec512< uint16_t > a, const Vec512< uint16_t > b)
 
HWY_API Vec512< int8_t > hwy::HWY_NAMESPACE::SaturatedSub (const Vec512< int8_t > a, const Vec512< int8_t > b)
 
HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::SaturatedSub (const Vec512< int16_t > a, const Vec512< int16_t > b)
 
HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::AverageRound (const Vec512< uint8_t > a, const Vec512< uint8_t > b)
 
HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::AverageRound (const Vec512< uint16_t > a, const Vec512< uint16_t > b)
 
HWY_API Vec512< int8_t > hwy::HWY_NAMESPACE::Abs (const Vec512< int8_t > v)
 
HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::Abs (const Vec512< int16_t > v)
 
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::Abs (const Vec512< int32_t > v)
 
HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::Abs (const Vec512< int64_t > v)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::Abs (const Vec512< float > v)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::Abs (const Vec512< double > v)
 
template<int kBits>
HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::ShiftLeft (const Vec512< uint16_t > v)
 
template<int kBits>
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::ShiftLeft (const Vec512< uint32_t > v)
 
template<int kBits>
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::ShiftLeft (const Vec512< uint64_t > v)
 
template<int kBits>
HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::ShiftLeft (const Vec512< int16_t > v)
 
template<int kBits>
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::ShiftLeft (const Vec512< int32_t > v)
 
template<int kBits>
HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::ShiftLeft (const Vec512< int64_t > v)
 
template<int kBits, typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::ShiftLeft (const Vec512< T > v)
 
template<int kBits>
HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::ShiftRight (const Vec512< uint16_t > v)
 
template<int kBits>
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::ShiftRight (const Vec512< uint32_t > v)
 
template<int kBits>
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::ShiftRight (const Vec512< uint64_t > v)
 
template<int kBits>
HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::ShiftRight (const Vec512< uint8_t > v)
 
template<int kBits>
HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::ShiftRight (const Vec512< int16_t > v)
 
template<int kBits>
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::ShiftRight (const Vec512< int32_t > v)
 
template<int kBits>
HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::ShiftRight (const Vec512< int64_t > v)
 
template<int kBits>
HWY_API Vec512< int8_t > hwy::HWY_NAMESPACE::ShiftRight (const Vec512< int8_t > v)
 
template<int kBits>
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::RotateRight (const Vec512< uint32_t > v)
 
template<int kBits>
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::RotateRight (const Vec512< uint64_t > v)
 
HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::ShiftLeftSame (const Vec512< uint16_t > v, const int bits)
 
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::ShiftLeftSame (const Vec512< uint32_t > v, const int bits)
 
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::ShiftLeftSame (const Vec512< uint64_t > v, const int bits)
 
HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::ShiftLeftSame (const Vec512< int16_t > v, const int bits)
 
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::ShiftLeftSame (const Vec512< int32_t > v, const int bits)
 
HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::ShiftLeftSame (const Vec512< int64_t > v, const int bits)
 
template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::ShiftLeftSame (const Vec512< T > v, const int bits)
 
HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::ShiftRightSame (const Vec512< uint16_t > v, const int bits)
 
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::ShiftRightSame (const Vec512< uint32_t > v, const int bits)
 
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::ShiftRightSame (const Vec512< uint64_t > v, const int bits)
 
HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::ShiftRightSame (Vec512< uint8_t > v, const int bits)
 
HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::ShiftRightSame (const Vec512< int16_t > v, const int bits)
 
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::ShiftRightSame (const Vec512< int32_t > v, const int bits)
 
HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::ShiftRightSame (const Vec512< int64_t > v, const int bits)
 
HWY_API Vec512< int8_t > hwy::HWY_NAMESPACE::ShiftRightSame (Vec512< int8_t > v, const int bits)
 
HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::operator<< (const Vec512< uint16_t > v, const Vec512< uint16_t > bits)
 
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::operator<< (const Vec512< uint32_t > v, const Vec512< uint32_t > bits)
 
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::operator<< (const Vec512< uint64_t > v, const Vec512< uint64_t > bits)
 
template<typename T , HWY_IF_SIGNED(T) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::operator<< (const Vec512< T > v, const Vec512< T > bits)
 
HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::operator>> (const Vec512< uint16_t > v, const Vec512< uint16_t > bits)
 
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::operator>> (const Vec512< uint32_t > v, const Vec512< uint32_t > bits)
 
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::operator>> (const Vec512< uint64_t > v, const Vec512< uint64_t > bits)
 
HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::operator>> (const Vec512< int16_t > v, const Vec512< int16_t > bits)
 
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::operator>> (const Vec512< int32_t > v, const Vec512< int32_t > bits)
 
HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::operator>> (const Vec512< int64_t > v, const Vec512< int64_t > bits)
 
HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::Min (const Vec512< uint8_t > a, const Vec512< uint8_t > b)
 
HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::Min (const Vec512< uint16_t > a, const Vec512< uint16_t > b)
 
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::Min (const Vec512< uint32_t > a, const Vec512< uint32_t > b)
 
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::Min (const Vec512< uint64_t > a, const Vec512< uint64_t > b)
 
HWY_API Vec512< int8_t > hwy::HWY_NAMESPACE::Min (const Vec512< int8_t > a, const Vec512< int8_t > b)
 
HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::Min (const Vec512< int16_t > a, const Vec512< int16_t > b)
 
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::Min (const Vec512< int32_t > a, const Vec512< int32_t > b)
 
HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::Min (const Vec512< int64_t > a, const Vec512< int64_t > b)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::Min (const Vec512< float > a, const Vec512< float > b)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::Min (const Vec512< double > a, const Vec512< double > b)
 
HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::Max (const Vec512< uint8_t > a, const Vec512< uint8_t > b)
 
HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::Max (const Vec512< uint16_t > a, const Vec512< uint16_t > b)
 
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::Max (const Vec512< uint32_t > a, const Vec512< uint32_t > b)
 
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::Max (const Vec512< uint64_t > a, const Vec512< uint64_t > b)
 
HWY_API Vec512< int8_t > hwy::HWY_NAMESPACE::Max (const Vec512< int8_t > a, const Vec512< int8_t > b)
 
HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::Max (const Vec512< int16_t > a, const Vec512< int16_t > b)
 
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::Max (const Vec512< int32_t > a, const Vec512< int32_t > b)
 
HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::Max (const Vec512< int64_t > a, const Vec512< int64_t > b)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::Max (const Vec512< float > a, const Vec512< float > b)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::Max (const Vec512< double > a, const Vec512< double > b)
 
HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::operator* (Vec512< uint16_t > a, Vec512< uint16_t > b)
 
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::operator* (Vec512< uint32_t > a, Vec512< uint32_t > b)
 
HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::operator* (Vec512< int16_t > a, Vec512< int16_t > b)
 
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::operator* (Vec512< int32_t > a, Vec512< int32_t > b)
 
HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::MulHigh (Vec512< uint16_t > a, Vec512< uint16_t > b)
 
HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::MulHigh (Vec512< int16_t > a, Vec512< int16_t > b)
 
HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::MulFixedPoint15 (Vec512< int16_t > a, Vec512< int16_t > b)
 
HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::MulEven (Vec512< int32_t > a, Vec512< int32_t > b)
 
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::MulEven (Vec512< uint32_t > a, Vec512< uint32_t > b)
 
template<typename T , HWY_IF_FLOAT(T) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Neg (const Vec512< T > v)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::operator* (const Vec512< float > a, const Vec512< float > b)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::operator* (const Vec512< double > a, const Vec512< double > b)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::operator/ (const Vec512< float > a, const Vec512< float > b)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::operator/ (const Vec512< double > a, const Vec512< double > b)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::ApproximateReciprocal (const Vec512< float > v)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::AbsDiff (const Vec512< float > a, const Vec512< float > b)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::MulAdd (const Vec512< float > mul, const Vec512< float > x, const Vec512< float > add)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::MulAdd (const Vec512< double > mul, const Vec512< double > x, const Vec512< double > add)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::NegMulAdd (const Vec512< float > mul, const Vec512< float > x, const Vec512< float > add)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::NegMulAdd (const Vec512< double > mul, const Vec512< double > x, const Vec512< double > add)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::MulSub (const Vec512< float > mul, const Vec512< float > x, const Vec512< float > sub)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::MulSub (const Vec512< double > mul, const Vec512< double > x, const Vec512< double > sub)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::NegMulSub (const Vec512< float > mul, const Vec512< float > x, const Vec512< float > sub)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::NegMulSub (const Vec512< double > mul, const Vec512< double > x, const Vec512< double > sub)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::Sqrt (const Vec512< float > v)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::Sqrt (const Vec512< double > v)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::ApproximateReciprocalSqrt (const Vec512< float > v)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::Round (const Vec512< float > v)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::Round (const Vec512< double > v)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::Trunc (const Vec512< float > v)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::Trunc (const Vec512< double > v)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::Ceil (const Vec512< float > v)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::Ceil (const Vec512< double > v)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::Floor (const Vec512< float > v)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::Floor (const Vec512< double > v)
 
template<typename TFrom , typename TTo >
HWY_API Mask512< TTo > hwy::HWY_NAMESPACE::RebindMask (Full512< TTo >, Mask512< TFrom > m)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::TestBit (hwy::SizeTag< 1 >, const Vec512< T > v, const Vec512< T > bit)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::TestBit (hwy::SizeTag< 2 >, const Vec512< T > v, const Vec512< T > bit)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::TestBit (hwy::SizeTag< 4 >, const Vec512< T > v, const Vec512< T > bit)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::TestBit (hwy::SizeTag< 8 >, const Vec512< T > v, const Vec512< T > bit)
 
template<typename T >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::TestBit (const Vec512< T > v, const Vec512< T > bit)
 
template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::operator== (Vec512< T > a, Vec512< T > b)
 
HWY_API Mask512< float > hwy::HWY_NAMESPACE::operator== (Vec512< float > a, Vec512< float > b)
 
HWY_API Mask512< double > hwy::HWY_NAMESPACE::operator== (Vec512< double > a, Vec512< double > b)
 
template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::operator!= (Vec512< T > a, Vec512< T > b)
 
HWY_API Mask512< float > hwy::HWY_NAMESPACE::operator!= (Vec512< float > a, Vec512< float > b)
 
HWY_API Mask512< double > hwy::HWY_NAMESPACE::operator!= (Vec512< double > a, Vec512< double > b)
 
HWY_API Mask512< uint8_t > hwy::HWY_NAMESPACE::operator> (Vec512< uint8_t > a, Vec512< uint8_t > b)
 
HWY_API Mask512< uint16_t > hwy::HWY_NAMESPACE::operator> (Vec512< uint16_t > a, Vec512< uint16_t > b)
 
HWY_API Mask512< uint32_t > hwy::HWY_NAMESPACE::operator> (Vec512< uint32_t > a, Vec512< uint32_t > b)
 
HWY_API Mask512< uint64_t > hwy::HWY_NAMESPACE::operator> (Vec512< uint64_t > a, Vec512< uint64_t > b)
 
HWY_API Mask512< int8_t > hwy::HWY_NAMESPACE::operator> (Vec512< int8_t > a, Vec512< int8_t > b)
 
HWY_API Mask512< int16_t > hwy::HWY_NAMESPACE::operator> (Vec512< int16_t > a, Vec512< int16_t > b)
 
HWY_API Mask512< int32_t > hwy::HWY_NAMESPACE::operator> (Vec512< int32_t > a, Vec512< int32_t > b)
 
HWY_API Mask512< int64_t > hwy::HWY_NAMESPACE::operator> (Vec512< int64_t > a, Vec512< int64_t > b)
 
HWY_API Mask512< float > hwy::HWY_NAMESPACE::operator> (Vec512< float > a, Vec512< float > b)
 
HWY_API Mask512< double > hwy::HWY_NAMESPACE::operator> (Vec512< double > a, Vec512< double > b)
 
HWY_API Mask512< float > hwy::HWY_NAMESPACE::operator>= (Vec512< float > a, Vec512< float > b)
 
HWY_API Mask512< double > hwy::HWY_NAMESPACE::operator>= (Vec512< double > a, Vec512< double > b)
 
template<typename T >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::operator< (Vec512< T > a, Vec512< T > b)
 
template<typename T >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::operator<= (Vec512< T > a, Vec512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::MaskFromVec (hwy::SizeTag< 1 >, const Vec512< T > v)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::MaskFromVec (hwy::SizeTag< 2 >, const Vec512< T > v)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::MaskFromVec (hwy::SizeTag< 4 >, const Vec512< T > v)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::MaskFromVec (hwy::SizeTag< 8 >, const Vec512< T > v)
 
template<typename T >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::MaskFromVec (const Vec512< T > v)
 
HWY_API Mask512< float > hwy::HWY_NAMESPACE::MaskFromVec (const Vec512< float > v)
 
HWY_API Mask512< double > hwy::HWY_NAMESPACE::MaskFromVec (const Vec512< double > v)
 
HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::VecFromMask (const Mask512< uint8_t > v)
 
HWY_API Vec512< int8_t > hwy::HWY_NAMESPACE::VecFromMask (const Mask512< int8_t > v)
 
HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::VecFromMask (const Mask512< uint16_t > v)
 
HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::VecFromMask (const Mask512< int16_t > v)
 
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::VecFromMask (const Mask512< uint32_t > v)
 
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::VecFromMask (const Mask512< int32_t > v)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::VecFromMask (const Mask512< float > v)
 
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::VecFromMask (const Mask512< uint64_t > v)
 
HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::VecFromMask (const Mask512< int64_t > v)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::VecFromMask (const Mask512< double > v)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::VecFromMask (Full512< T >, const Mask512< T > v)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::Not (hwy::SizeTag< 1 >, const Mask512< T > m)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::Not (hwy::SizeTag< 2 >, const Mask512< T > m)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::Not (hwy::SizeTag< 4 >, const Mask512< T > m)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::Not (hwy::SizeTag< 8 >, const Mask512< T > m)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::And (hwy::SizeTag< 1 >, const Mask512< T > a, const Mask512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::And (hwy::SizeTag< 2 >, const Mask512< T > a, const Mask512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::And (hwy::SizeTag< 4 >, const Mask512< T > a, const Mask512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::And (hwy::SizeTag< 8 >, const Mask512< T > a, const Mask512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::AndNot (hwy::SizeTag< 1 >, const Mask512< T > a, const Mask512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::AndNot (hwy::SizeTag< 2 >, const Mask512< T > a, const Mask512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::AndNot (hwy::SizeTag< 4 >, const Mask512< T > a, const Mask512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::AndNot (hwy::SizeTag< 8 >, const Mask512< T > a, const Mask512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::Or (hwy::SizeTag< 1 >, const Mask512< T > a, const Mask512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::Or (hwy::SizeTag< 2 >, const Mask512< T > a, const Mask512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::Or (hwy::SizeTag< 4 >, const Mask512< T > a, const Mask512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::Or (hwy::SizeTag< 8 >, const Mask512< T > a, const Mask512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::Xor (hwy::SizeTag< 1 >, const Mask512< T > a, const Mask512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::Xor (hwy::SizeTag< 2 >, const Mask512< T > a, const Mask512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::Xor (hwy::SizeTag< 4 >, const Mask512< T > a, const Mask512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::Xor (hwy::SizeTag< 8 >, const Mask512< T > a, const Mask512< T > b)
 
template<typename T >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::Not (const Mask512< T > m)
 
template<typename T >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::And (const Mask512< T > a, Mask512< T > b)
 
template<typename T >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::AndNot (const Mask512< T > a, Mask512< T > b)
 
template<typename T >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::Or (const Mask512< T > a, Mask512< T > b)
 
template<typename T >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::Xor (const Mask512< T > a, Mask512< T > b)
 
HWY_API Vec512< int8_t > hwy::HWY_NAMESPACE::BroadcastSignBit (const Vec512< int8_t > v)
 
HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::BroadcastSignBit (const Vec512< int16_t > v)
 
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::BroadcastSignBit (const Vec512< int32_t > v)
 
HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::BroadcastSignBit (const Vec512< int64_t > v)
 
HWY_API Mask512< float > hwy::HWY_NAMESPACE::IsNaN (const Vec512< float > v)
 
HWY_API Mask512< double > hwy::HWY_NAMESPACE::IsNaN (const Vec512< double > v)
 
HWY_API Mask512< float > hwy::HWY_NAMESPACE::IsInf (const Vec512< float > v)
 
HWY_API Mask512< double > hwy::HWY_NAMESPACE::IsInf (const Vec512< double > v)
 
HWY_API Mask512< float > hwy::HWY_NAMESPACE::IsFinite (const Vec512< float > v)
 
HWY_API Mask512< double > hwy::HWY_NAMESPACE::IsFinite (const Vec512< double > v)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Load (Full512< T >, const T *HWY_RESTRICT aligned)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::Load (Full512< float >, const float *HWY_RESTRICT aligned)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::Load (Full512< double >, const double *HWY_RESTRICT aligned)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::LoadU (Full512< T >, const T *HWY_RESTRICT p)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::LoadU (Full512< float >, const float *HWY_RESTRICT p)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::LoadU (Full512< double >, const double *HWY_RESTRICT p)
 
template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::MaskedLoad (Mask512< T > m, Full512< T >, const T *HWY_RESTRICT p)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::MaskedLoad (Mask512< float > m, Full512< float >, const float *HWY_RESTRICT p)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::MaskedLoad (Mask512< double > m, Full512< double >, const double *HWY_RESTRICT p)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::LoadDup128 (Full512< T >, const T *const HWY_RESTRICT p)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::LoadDup128 (Full512< float >, const float *const HWY_RESTRICT p)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::LoadDup128 (Full512< double >, const double *const HWY_RESTRICT p)
 
template<typename T >
HWY_API void hwy::HWY_NAMESPACE::Store (const Vec512< T > v, Full512< T >, T *HWY_RESTRICT aligned)
 
HWY_API void hwy::HWY_NAMESPACE::Store (const Vec512< float > v, Full512< float >, float *HWY_RESTRICT aligned)
 
HWY_API void hwy::HWY_NAMESPACE::Store (const Vec512< double > v, Full512< double >, double *HWY_RESTRICT aligned)
 
template<typename T >
HWY_API void hwy::HWY_NAMESPACE::StoreU (const Vec512< T > v, Full512< T >, T *HWY_RESTRICT p)
 
HWY_API void hwy::HWY_NAMESPACE::StoreU (const Vec512< float > v, Full512< float >, float *HWY_RESTRICT p)
 
HWY_API void hwy::HWY_NAMESPACE::StoreU (const Vec512< double > v, Full512< double >, double *HWY_RESTRICT p)
 
template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API void hwy::HWY_NAMESPACE::BlendedStore (Vec512< T > v, Mask512< T > m, Full512< T >, T *HWY_RESTRICT p)
 
HWY_API void hwy::HWY_NAMESPACE::BlendedStore (Vec512< float > v, Mask512< float > m, Full512< float >, float *HWY_RESTRICT p)
 
HWY_API void hwy::HWY_NAMESPACE::BlendedStore (Vec512< double > v, Mask512< double > m, Full512< double >, double *HWY_RESTRICT p)
 
template<typename T >
HWY_API void hwy::HWY_NAMESPACE::Stream (const Vec512< T > v, Full512< T >, T *HWY_RESTRICT aligned)
 
HWY_API void hwy::HWY_NAMESPACE::Stream (const Vec512< float > v, Full512< float >, float *HWY_RESTRICT aligned)
 
HWY_API void hwy::HWY_NAMESPACE::Stream (const Vec512< double > v, Full512< double >, double *HWY_RESTRICT aligned)
 
template<typename T >
HWY_INLINE void hwy::HWY_NAMESPACE::detail::ScatterOffset (hwy::SizeTag< 4 >, Vec512< T > v, Full512< T >, T *HWY_RESTRICT base, const Vec512< int32_t > offset)
 
template<typename T >
HWY_INLINE void hwy::HWY_NAMESPACE::detail::ScatterIndex (hwy::SizeTag< 4 >, Vec512< T > v, Full512< T >, T *HWY_RESTRICT base, const Vec512< int32_t > index)
 
template<typename T >
HWY_INLINE void hwy::HWY_NAMESPACE::detail::ScatterOffset (hwy::SizeTag< 8 >, Vec512< T > v, Full512< T >, T *HWY_RESTRICT base, const Vec512< int64_t > offset)
 
template<typename T >
HWY_INLINE void hwy::HWY_NAMESPACE::detail::ScatterIndex (hwy::SizeTag< 8 >, Vec512< T > v, Full512< T >, T *HWY_RESTRICT base, const Vec512< int64_t > index)
 
template<typename T , typename Offset >
HWY_API void hwy::HWY_NAMESPACE::ScatterOffset (Vec512< T > v, Full512< T > d, T *HWY_RESTRICT base, const Vec512< Offset > offset)
 
template<typename T , typename Index >
HWY_API void hwy::HWY_NAMESPACE::ScatterIndex (Vec512< T > v, Full512< T > d, T *HWY_RESTRICT base, const Vec512< Index > index)
 
HWY_API void hwy::HWY_NAMESPACE::ScatterOffset (Vec512< float > v, Full512< float >, float *HWY_RESTRICT base, const Vec512< int32_t > offset)
 
HWY_API void hwy::HWY_NAMESPACE::ScatterIndex (Vec512< float > v, Full512< float >, float *HWY_RESTRICT base, const Vec512< int32_t > index)
 
HWY_API void hwy::HWY_NAMESPACE::ScatterOffset (Vec512< double > v, Full512< double >, double *HWY_RESTRICT base, const Vec512< int64_t > offset)
 
HWY_API void hwy::HWY_NAMESPACE::ScatterIndex (Vec512< double > v, Full512< double >, double *HWY_RESTRICT base, const Vec512< int64_t > index)
 
template<typename T >
HWY_INLINE Vec512< T > hwy::HWY_NAMESPACE::detail::GatherOffset (hwy::SizeTag< 4 >, Full512< T >, const T *HWY_RESTRICT base, const Vec512< int32_t > offset)
 
template<typename T >
HWY_INLINE Vec512< T > hwy::HWY_NAMESPACE::detail::GatherIndex (hwy::SizeTag< 4 >, Full512< T >, const T *HWY_RESTRICT base, const Vec512< int32_t > index)
 
template<typename T >
HWY_INLINE Vec512< T > hwy::HWY_NAMESPACE::detail::GatherOffset (hwy::SizeTag< 8 >, Full512< T >, const T *HWY_RESTRICT base, const Vec512< int64_t > offset)
 
template<typename T >
HWY_INLINE Vec512< T > hwy::HWY_NAMESPACE::detail::GatherIndex (hwy::SizeTag< 8 >, Full512< T >, const T *HWY_RESTRICT base, const Vec512< int64_t > index)
 
template<typename T , typename Offset >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::GatherOffset (Full512< T > d, const T *HWY_RESTRICT base, const Vec512< Offset > offset)
 
template<typename T , typename Index >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::GatherIndex (Full512< T > d, const T *HWY_RESTRICT base, const Vec512< Index > index)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::GatherOffset (Full512< float >, const float *HWY_RESTRICT base, const Vec512< int32_t > offset)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::GatherIndex (Full512< float >, const float *HWY_RESTRICT base, const Vec512< int32_t > index)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::GatherOffset (Full512< double >, const double *HWY_RESTRICT base, const Vec512< int64_t > offset)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::GatherIndex (Full512< double >, const double *HWY_RESTRICT base, const Vec512< int64_t > index)
 
template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::LowerHalf (Full256< T >, Vec512< T > v)
 
HWY_API Vec256< float > hwy::HWY_NAMESPACE::LowerHalf (Full256< float >, Vec512< float > v)
 
HWY_API Vec256< double > hwy::HWY_NAMESPACE::LowerHalf (Full256< double >, Vec512< double > v)
 
template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::LowerHalf (Vec512< T > v)
 
template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::UpperHalf (Full256< T >, Vec512< T > v)
 
HWY_API Vec256< float > hwy::HWY_NAMESPACE::UpperHalf (Full256< float >, Vec512< float > v)
 
HWY_API Vec256< double > hwy::HWY_NAMESPACE::UpperHalf (Full256< double >, Vec512< double > v)
 
template<typename T >
HWY_APIhwy::HWY_NAMESPACE::ExtractLane (const Vec512< T > v, size_t i)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::InsertLane (const Vec512< T > v, size_t i, T t)
 
template<typename T >
HWY_APIhwy::HWY_NAMESPACE::GetLane (const Vec512< T > v)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::ZeroExtendVector (Full512< T >, Vec256< T > lo)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::ZeroExtendVector (Full512< float >, Vec256< float > lo)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::ZeroExtendVector (Full512< double >, Vec256< double > lo)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Combine (Full512< T > d, Vec256< T > hi, Vec256< T > lo)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::Combine (Full512< float > d, Vec256< float > hi, Vec256< float > lo)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::Combine (Full512< double > d, Vec256< double > hi, Vec256< double > lo)
 
template<int kBytes, typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::ShiftLeftBytes (Full512< T >, const Vec512< T > v)
 
template<int kBytes, typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::ShiftLeftBytes (const Vec512< T > v)
 
template<int kLanes, typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::ShiftLeftLanes (Full512< T > d, const Vec512< T > v)
 
template<int kLanes, typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::ShiftLeftLanes (const Vec512< T > v)
 
template<int kBytes, typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::ShiftRightBytes (Full512< T >, const Vec512< T > v)
 
template<int kLanes, typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::ShiftRightLanes (Full512< T > d, const Vec512< T > v)
 
template<int kBytes, typename T , class V = Vec512<T>>
HWY_APIhwy::HWY_NAMESPACE::CombineShiftRightBytes (Full512< T > d, V hi, V lo)
 
template<int kLane>
HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::Broadcast (const Vec512< uint16_t > v)
 
template<int kLane>
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::Broadcast (const Vec512< uint32_t > v)
 
template<int kLane>
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::Broadcast (const Vec512< uint64_t > v)
 
template<int kLane>
HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::Broadcast (const Vec512< int16_t > v)
 
template<int kLane>
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::Broadcast (const Vec512< int32_t > v)
 
template<int kLane>
HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::Broadcast (const Vec512< int64_t > v)
 
template<int kLane>
HWY_API Vec512< float > hwy::HWY_NAMESPACE::Broadcast (const Vec512< float > v)
 
template<int kLane>
HWY_API Vec512< double > hwy::HWY_NAMESPACE::Broadcast (const Vec512< double > v)
 
template<typename T , HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Shuffle2301 (const Vec512< T > v)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::Shuffle2301 (const Vec512< float > v)
 
template<typename T , HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::detail::Shuffle2301 (const Vec512< T > a, const Vec512< T > b)
 
template<typename T , HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::detail::Shuffle1230 (const Vec512< T > a, const Vec512< T > b)
 
template<typename T , HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::detail::Shuffle3012 (const Vec512< T > a, const Vec512< T > b)
 
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::Shuffle1032 (const Vec512< uint32_t > v)
 
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::Shuffle1032 (const Vec512< int32_t > v)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::Shuffle1032 (const Vec512< float > v)
 
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::Shuffle01 (const Vec512< uint64_t > v)
 
HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::Shuffle01 (const Vec512< int64_t > v)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::Shuffle01 (const Vec512< double > v)
 
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::Shuffle0321 (const Vec512< uint32_t > v)
 
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::Shuffle0321 (const Vec512< int32_t > v)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::Shuffle0321 (const Vec512< float > v)
 
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::Shuffle2103 (const Vec512< uint32_t > v)
 
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::Shuffle2103 (const Vec512< int32_t > v)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::Shuffle2103 (const Vec512< float > v)
 
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::Shuffle0123 (const Vec512< uint32_t > v)
 
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::Shuffle0123 (const Vec512< int32_t > v)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::Shuffle0123 (const Vec512< float > v)
 
template<typename T , typename TI >
HWY_API Indices512< T > hwy::HWY_NAMESPACE::IndicesFromVec (Full512< T >, Vec512< TI > vec)
 
template<typename T , typename TI >
HWY_API Indices512< T > hwy::HWY_NAMESPACE::SetTableIndices (const Full512< T > d, const TI *idx)
 
template<typename T , HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::TableLookupLanes (Vec512< T > v, Indices512< T > idx)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::TableLookupLanes (Vec512< float > v, Indices512< float > idx)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::TableLookupLanes (Vec512< double > v, Indices512< double > idx)
 
template<typename T , HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Reverse (Full512< T > d, const Vec512< T > v)
 
template<typename T , HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Reverse2 (Full512< T > d, const Vec512< T > v)
 
template<typename T , HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Reverse4 (Full512< T > d, const Vec512< T > v)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::Reverse4 (Full512< double >, Vec512< double > v)
 
template<typename T , HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Reverse8 (Full512< T > d, const Vec512< T > v)
 
HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::InterleaveLower (const Vec512< uint8_t > a, const Vec512< uint8_t > b)
 
HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::InterleaveLower (const Vec512< uint16_t > a, const Vec512< uint16_t > b)
 
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::InterleaveLower (const Vec512< uint32_t > a, const Vec512< uint32_t > b)
 
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::InterleaveLower (const Vec512< uint64_t > a, const Vec512< uint64_t > b)
 
HWY_API Vec512< int8_t > hwy::HWY_NAMESPACE::InterleaveLower (const Vec512< int8_t > a, const Vec512< int8_t > b)
 
HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::InterleaveLower (const Vec512< int16_t > a, const Vec512< int16_t > b)
 
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::InterleaveLower (const Vec512< int32_t > a, const Vec512< int32_t > b)
 
HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::InterleaveLower (const Vec512< int64_t > a, const Vec512< int64_t > b)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::InterleaveLower (const Vec512< float > a, const Vec512< float > b)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::InterleaveLower (const Vec512< double > a, const Vec512< double > b)
 
HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::detail::InterleaveUpper (const Vec512< uint8_t > a, const Vec512< uint8_t > b)
 
HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::detail::InterleaveUpper (const Vec512< uint16_t > a, const Vec512< uint16_t > b)
 
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::detail::InterleaveUpper (const Vec512< uint32_t > a, const Vec512< uint32_t > b)
 
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::detail::InterleaveUpper (const Vec512< uint64_t > a, const Vec512< uint64_t > b)
 
HWY_API Vec512< int8_t > hwy::HWY_NAMESPACE::detail::InterleaveUpper (const Vec512< int8_t > a, const Vec512< int8_t > b)
 
HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::detail::InterleaveUpper (const Vec512< int16_t > a, const Vec512< int16_t > b)
 
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::detail::InterleaveUpper (const Vec512< int32_t > a, const Vec512< int32_t > b)
 
HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::detail::InterleaveUpper (const Vec512< int64_t > a, const Vec512< int64_t > b)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::detail::InterleaveUpper (const Vec512< float > a, const Vec512< float > b)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::detail::InterleaveUpper (const Vec512< double > a, const Vec512< double > b)
 
template<typename T , class V = Vec512<T>>
HWY_APIhwy::HWY_NAMESPACE::InterleaveUpper (Full512< T >, V a, V b)
 
template<typename T , typename TW = MakeWide<T>>
HWY_API Vec512< TW > hwy::HWY_NAMESPACE::ZipLower (Vec512< T > a, Vec512< T > b)
 
template<typename T , typename TW = MakeWide<T>>
HWY_API Vec512< TW > hwy::HWY_NAMESPACE::ZipLower (Full512< TW >, Vec512< T > a, Vec512< T > b)
 
template<typename T , typename TW = MakeWide<T>>
HWY_API Vec512< TW > hwy::HWY_NAMESPACE::ZipUpper (Full512< TW > d, Vec512< T > a, Vec512< T > b)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::ConcatLowerLower (Full512< T >, const Vec512< T > hi, const Vec512< T > lo)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::ConcatLowerLower (Full512< float >, const Vec512< float > hi, const Vec512< float > lo)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::ConcatLowerLower (Full512< double >, const Vec512< double > hi, const Vec512< double > lo)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::ConcatUpperUpper (Full512< T >, const Vec512< T > hi, const Vec512< T > lo)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::ConcatUpperUpper (Full512< float >, const Vec512< float > hi, const Vec512< float > lo)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::ConcatUpperUpper (Full512< double >, const Vec512< double > hi, const Vec512< double > lo)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::ConcatLowerUpper (Full512< T >, const Vec512< T > hi, const Vec512< T > lo)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::ConcatLowerUpper (Full512< float >, const Vec512< float > hi, const Vec512< float > lo)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::ConcatLowerUpper (Full512< double >, const Vec512< double > hi, const Vec512< double > lo)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::ConcatUpperLower (Full512< T >, const Vec512< T > hi, const Vec512< T > lo)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::ConcatUpperLower (Full512< float >, const Vec512< float > hi, const Vec512< float > lo)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::ConcatUpperLower (Full512< double >, const Vec512< double > hi, const Vec512< double > lo)
 
template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::ConcatOdd (Full512< T > d, Vec512< T > hi, Vec512< T > lo)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::ConcatOdd (Full512< float > d, Vec512< float > hi, Vec512< float > lo)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::ConcatOdd (Full512< double > d, Vec512< double > hi, Vec512< double > lo)
 
template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::ConcatEven (Full512< T > d, Vec512< T > hi, Vec512< T > lo)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::ConcatEven (Full512< float > d, Vec512< float > hi, Vec512< float > lo)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::ConcatEven (Full512< double > d, Vec512< double > hi, Vec512< double > lo)
 
template<typename T , HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::DupEven (Vec512< T > v)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::DupEven (Vec512< float > v)
 
template<typename T , HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::DupOdd (Vec512< T > v)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::DupOdd (Vec512< float > v)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::OddEven (const Vec512< T > a, const Vec512< T > b)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::OddEvenBlocks (Vec512< T > odd, Vec512< T > even)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::OddEvenBlocks (Vec512< float > odd, Vec512< float > even)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::OddEvenBlocks (Vec512< double > odd, Vec512< double > even)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::SwapAdjacentBlocks (Vec512< T > v)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::SwapAdjacentBlocks (Vec512< float > v)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::SwapAdjacentBlocks (Vec512< double > v)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::ReverseBlocks (Full512< T >, Vec512< T > v)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::ReverseBlocks (Full512< float >, Vec512< float > v)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::ReverseBlocks (Full512< double >, Vec512< double > v)
 
template<typename T , typename TI >
HWY_API Vec512< TI > hwy::HWY_NAMESPACE::TableLookupBytes (Vec512< T > bytes, Vec512< TI > indices)
 
template<typename T , typename TI , size_t NI>
HWY_API Vec128< TI, NI > hwy::HWY_NAMESPACE::TableLookupBytes (Vec512< T > bytes, Vec128< TI, NI > from)
 
template<typename T , typename TI >
HWY_API Vec256< TI > hwy::HWY_NAMESPACE::TableLookupBytes (Vec512< T > bytes, Vec256< TI > from)
 
template<typename T , size_t N, typename TI >
HWY_API Vec512< TI > hwy::HWY_NAMESPACE::TableLookupBytes (Vec128< T, N > bytes, Vec512< TI > from)
 
template<typename T , typename TI >
HWY_API Vec512< TI > hwy::HWY_NAMESPACE::TableLookupBytes (Vec256< T > bytes, Vec512< TI > from)
 
HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::PromoteTo (Full512< uint16_t >, Vec256< uint8_t > v)
 
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::PromoteTo (Full512< uint32_t >, Vec128< uint8_t > v)
 
HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::PromoteTo (Full512< int16_t >, Vec256< uint8_t > v)
 
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::PromoteTo (Full512< int32_t >, Vec128< uint8_t > v)
 
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::PromoteTo (Full512< uint32_t >, Vec256< uint16_t > v)
 
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::PromoteTo (Full512< int32_t >, Vec256< uint16_t > v)
 
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::PromoteTo (Full512< uint64_t >, Vec256< uint32_t > v)
 
HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::PromoteTo (Full512< int16_t >, Vec256< int8_t > v)
 
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::PromoteTo (Full512< int32_t >, Vec128< int8_t > v)
 
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::PromoteTo (Full512< int32_t >, Vec256< int16_t > v)
 
HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::PromoteTo (Full512< int64_t >, Vec256< int32_t > v)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::PromoteTo (Full512< float >, const Vec256< float16_t > v)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::PromoteTo (Full512< float > df32, const Vec256< bfloat16_t > v)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::PromoteTo (Full512< double >, Vec256< float > v)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::PromoteTo (Full512< double >, Vec256< int32_t > v)
 
HWY_API Vec256< uint16_t > hwy::HWY_NAMESPACE::DemoteTo (Full256< uint16_t >, const Vec512< int32_t > v)
 
HWY_API Vec256< int16_t > hwy::HWY_NAMESPACE::DemoteTo (Full256< int16_t >, const Vec512< int32_t > v)
 
HWY_API Vec128< uint8_t, 16 > hwy::HWY_NAMESPACE::DemoteTo (Full128< uint8_t >, const Vec512< int32_t > v)
 
HWY_API Vec256< uint8_t > hwy::HWY_NAMESPACE::DemoteTo (Full256< uint8_t >, const Vec512< int16_t > v)
 
HWY_API Vec128< int8_t, 16 > hwy::HWY_NAMESPACE::DemoteTo (Full128< int8_t >, const Vec512< int32_t > v)
 
HWY_API Vec256< int8_t > hwy::HWY_NAMESPACE::DemoteTo (Full256< int8_t >, const Vec512< int16_t > v)
 
HWY_API Vec256< float16_t > hwy::HWY_NAMESPACE::DemoteTo (Full256< float16_t >, const Vec512< float > v)
 
HWY_API Vec256< bfloat16_t > hwy::HWY_NAMESPACE::DemoteTo (Full256< bfloat16_t > dbf16, const Vec512< float > v)
 
HWY_API Vec512< bfloat16_t > hwy::HWY_NAMESPACE::ReorderDemote2To (Full512< bfloat16_t > dbf16, Vec512< float > a, Vec512< float > b)
 
HWY_API Vec256< float > hwy::HWY_NAMESPACE::DemoteTo (Full256< float >, const Vec512< double > v)
 
HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::DemoteTo (Full256< int32_t >, const Vec512< double > v)
 
HWY_API Vec128< uint8_t, 16 > hwy::HWY_NAMESPACE::U8FromU32 (const Vec512< uint32_t > v)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::ConvertTo (Full512< float >, const Vec512< int32_t > v)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::ConvertTo (Full512< double >, const Vec512< int64_t > v)
 
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::ConvertTo (Full512< int32_t > d, const Vec512< float > v)
 
HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::ConvertTo (Full512< int64_t > di, const Vec512< double > v)
 
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::NearestInt (const Vec512< float > v)
 
HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::AESRound (Vec512< uint8_t > state, Vec512< uint8_t > round_key)
 
HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::AESLastRound (Vec512< uint8_t > state, Vec512< uint8_t > round_key)
 
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::CLMulLower (Vec512< uint64_t > va, Vec512< uint64_t > vb)
 
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::CLMulUpper (Vec512< uint64_t > va, Vec512< uint64_t > vb)
 
template<typename T , typename T2 >
Vec512< T > hwy::HWY_NAMESPACE::Iota (const Full512< T > d, const T2 first)
 
template<typename T >
HWY_INLINE bool hwy::HWY_NAMESPACE::detail::AllFalse (hwy::SizeTag< 1 >, const Mask512< T > mask)
 
template<typename T >
HWY_INLINE bool hwy::HWY_NAMESPACE::detail::AllFalse (hwy::SizeTag< 2 >, const Mask512< T > mask)
 
template<typename T >
HWY_INLINE bool hwy::HWY_NAMESPACE::detail::AllFalse (hwy::SizeTag< 4 >, const Mask512< T > mask)
 
template<typename T >
HWY_INLINE bool hwy::HWY_NAMESPACE::detail::AllFalse (hwy::SizeTag< 8 >, const Mask512< T > mask)
 
template<typename T >
HWY_API bool hwy::HWY_NAMESPACE::AllFalse (const Full512< T >, const Mask512< T > mask)
 
template<typename T >
HWY_INLINE bool hwy::HWY_NAMESPACE::detail::AllTrue (hwy::SizeTag< 1 >, const Mask512< T > mask)
 
template<typename T >
HWY_INLINE bool hwy::HWY_NAMESPACE::detail::AllTrue (hwy::SizeTag< 2 >, const Mask512< T > mask)
 
template<typename T >
HWY_INLINE bool hwy::HWY_NAMESPACE::detail::AllTrue (hwy::SizeTag< 4 >, const Mask512< T > mask)
 
template<typename T >
HWY_INLINE bool hwy::HWY_NAMESPACE::detail::AllTrue (hwy::SizeTag< 8 >, const Mask512< T > mask)
 
template<typename T >
HWY_API bool hwy::HWY_NAMESPACE::AllTrue (const Full512< T >, const Mask512< T > mask)
 
template<typename T >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::LoadMaskBits (const Full512< T >, const uint8_t *HWY_RESTRICT bits)
 
template<typename T >
HWY_API size_t hwy::HWY_NAMESPACE::StoreMaskBits (const Full512< T >, const Mask512< T > mask, uint8_t *bits)
 
template<typename T >
HWY_API size_t hwy::HWY_NAMESPACE::CountTrue (const Full512< T >, const Mask512< T > mask)
 
template<typename T , HWY_IF_NOT_LANE_SIZE(T, 1) >
HWY_API intptr_t hwy::HWY_NAMESPACE::FindFirstTrue (const Full512< T >, const Mask512< T > mask)
 
template<typename T , HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Compress (Vec512< T > v, Mask512< T > mask)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::Compress (Vec512< float > v, Mask512< float > mask)
 
template<typename T , HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Compress (Vec256< T > v, Mask256< T > mask)
 
template<typename T , HWY_IF_NOT_LANE_SIZE(T, 8) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::CompressNot (Vec512< T > v, const Mask512< T > mask)
 
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::CompressBlocksNot (Vec512< uint64_t > v, Mask512< uint64_t > mask)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::CompressBits (Vec512< T > v, const uint8_t *HWY_RESTRICT bits)
 
template<typename T , HWY_IF_LANE_SIZE(T, 2) >
HWY_API size_t hwy::HWY_NAMESPACE::CompressStore (Vec512< T > v, Mask512< T > mask, Full512< T > d, T *HWY_RESTRICT unaligned)
 
HWY_API size_t hwy::HWY_NAMESPACE::CompressStore (Vec512< float > v, Mask512< float > mask, Full512< float >, float *HWY_RESTRICT unaligned)
 
HWY_API size_t hwy::HWY_NAMESPACE::CompressStore (Vec512< double > v, Mask512< double > mask, Full512< double >, double *HWY_RESTRICT unaligned)
 
template<typename T >
HWY_API size_t hwy::HWY_NAMESPACE::CompressBlendedStore (Vec512< T > v, Mask512< T > m, Full512< T > d, T *HWY_RESTRICT unaligned)
 
template<typename T >
HWY_API size_t hwy::HWY_NAMESPACE::CompressBitsStore (Vec512< T > v, const uint8_t *HWY_RESTRICT bits, Full512< T > d, T *HWY_RESTRICT unaligned)
 
template<_MM_PERM_ENUM kPerm, typename T >
Vec512< T > hwy::HWY_NAMESPACE::detail::Shuffle128 (const Vec512< T > lo, const Vec512< T > hi)
 
template<_MM_PERM_ENUM kPerm>
Vec512< float > hwy::HWY_NAMESPACE::detail::Shuffle128 (const Vec512< float > lo, const Vec512< float > hi)
 
template<_MM_PERM_ENUM kPerm>
Vec512< double > hwy::HWY_NAMESPACE::detail::Shuffle128 (const Vec512< double > lo, const Vec512< double > hi)
 
template<typename T >
HWY_API void hwy::HWY_NAMESPACE::detail::LoadTransposedBlocks3 (Full512< T > d, const T *HWY_RESTRICT unaligned, Vec512< T > &A, Vec512< T > &B, Vec512< T > &C)
 
template<typename T >
HWY_API void hwy::HWY_NAMESPACE::detail::LoadTransposedBlocks4 (Full512< T > d, const T *HWY_RESTRICT unaligned, Vec512< T > &A, Vec512< T > &B, Vec512< T > &C, Vec512< T > &D)
 
template<typename T >
HWY_API void hwy::HWY_NAMESPACE::detail::StoreTransposedBlocks2 (const Vec512< T > i, const Vec512< T > j, const Full512< T > d, T *HWY_RESTRICT unaligned)
 
template<typename T >
HWY_API void hwy::HWY_NAMESPACE::detail::StoreTransposedBlocks3 (const Vec512< T > i, const Vec512< T > j, const Vec512< T > k, Full512< T > d, T *HWY_RESTRICT unaligned)
 
template<typename T >
HWY_API void hwy::HWY_NAMESPACE::detail::StoreTransposedBlocks4 (const Vec512< T > i, const Vec512< T > j, const Vec512< T > k, const Vec512< T > l, Full512< T > d, T *HWY_RESTRICT unaligned)
 
HWY_INLINE Vec512< uint64_t > hwy::HWY_NAMESPACE::MulEven (const Vec512< uint64_t > a, const Vec512< uint64_t > b)
 
HWY_INLINE Vec512< uint64_t > hwy::HWY_NAMESPACE::MulOdd (const Vec512< uint64_t > a, const Vec512< uint64_t > b)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::ReorderWidenMulAccumulate (Full512< float > df32, Vec512< bfloat16_t > a, Vec512< bfloat16_t > b, const Vec512< float > sum0, Vec512< float > &sum1)
 
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::SumOfLanes (Full512< int32_t > d, Vec512< int32_t > v)
 
HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::SumOfLanes (Full512< int64_t > d, Vec512< int64_t > v)
 
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::SumOfLanes (Full512< uint32_t > d, Vec512< uint32_t > v)
 
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::SumOfLanes (Full512< uint64_t > d, Vec512< uint64_t > v)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::SumOfLanes (Full512< float > d, Vec512< float > v)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::SumOfLanes (Full512< double > d, Vec512< double > v)
 
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::MinOfLanes (Full512< int32_t > d, Vec512< int32_t > v)
 
HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::MinOfLanes (Full512< int64_t > d, Vec512< int64_t > v)
 
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::MinOfLanes (Full512< uint32_t > d, Vec512< uint32_t > v)
 
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::MinOfLanes (Full512< uint64_t > d, Vec512< uint64_t > v)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::MinOfLanes (Full512< float > d, Vec512< float > v)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::MinOfLanes (Full512< double > d, Vec512< double > v)
 
template<typename T , HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::MinOfLanes (Full512< T > d, Vec512< T > v)
 
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::MaxOfLanes (Full512< int32_t > d, Vec512< int32_t > v)
 
HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::MaxOfLanes (Full512< int64_t > d, Vec512< int64_t > v)
 
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::MaxOfLanes (Full512< uint32_t > d, Vec512< uint32_t > v)
 
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::MaxOfLanes (Full512< uint64_t > d, Vec512< uint64_t > v)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::MaxOfLanes (Full512< float > d, Vec512< float > v)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::MaxOfLanes (Full512< double > d, Vec512< double > v)
 
template<typename T , HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::MaxOfLanes (Full512< T > d, Vec512< T > v)
 
 HWY_AFTER_NAMESPACE ()
 

Macro Definition Documentation

◆ HWY_NATIVE_AES

#define HWY_NATIVE_AES

◆ HWY_NATIVE_POPCNT

#define HWY_NATIVE_POPCNT

Function Documentation

◆ HWY_AFTER_NAMESPACE()

HWY_AFTER_NAMESPACE ( )

◆ HWY_BEFORE_NAMESPACE()

HWY_BEFORE_NAMESPACE ( )