Grok 12.0.1
Classes | Namespaces | Macros | Typedefs | Functions
shared-inl.h File Reference
#include <stddef.h>
#include "hwy/base.h"
#include <stdint.h>
#include "hwy/detect_compiler_arch.h"
#include "hwy/ops/set_macros-inl.h"

Go to the source code of this file.

Classes

struct  hwy::HWY_NAMESPACE::detail::NativeLaneTypeT< T >
 
struct  hwy::HWY_NAMESPACE::detail::NativeLaneTypeT< hwy::float16_t >
 
struct  hwy::HWY_NAMESPACE::detail::NativeLaneTypeT< hwy::bfloat16_t >
 
struct  hwy::HWY_NAMESPACE::Simd< Lane, N, kPow2 >
 
struct  hwy::HWY_NAMESPACE::detail::ClampNAndPow2< T, N, kPow2 >
 
struct  hwy::HWY_NAMESPACE::detail::ScalableTagChecker< T, kPow2 >
 
struct  hwy::HWY_NAMESPACE::detail::CappedTagChecker< T, kLimit, kPow2 >
 
struct  hwy::HWY_NAMESPACE::detail::FixedTagChecker< T, kNumLanes >
 

Namespaces

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

Macros

#define HIGHWAY_HWY_OPS_SHARED_TOGGLE
 
#define HWY_MAX_LANES_D(D)   D::kPrivateLanes
 
#define HWY_POW2_D(D)   D::kPrivatePow2
 
#define HWY_IF_UNSIGNED_D(D)   HWY_IF_UNSIGNED(hwy::HWY_NAMESPACE::TFromD<D>)
 
#define HWY_IF_NOT_UNSIGNED_D(D)    HWY_IF_NOT_UNSIGNED(hwy::HWY_NAMESPACE::TFromD<D>)
 
#define HWY_IF_SIGNED_D(D)   HWY_IF_SIGNED(hwy::HWY_NAMESPACE::TFromD<D>)
 
#define HWY_IF_FLOAT_D(D)   HWY_IF_FLOAT(hwy::HWY_NAMESPACE::TFromD<D>)
 
#define HWY_IF_NOT_FLOAT_D(D)   HWY_IF_NOT_FLOAT(hwy::HWY_NAMESPACE::TFromD<D>)
 
#define HWY_IF_FLOAT3264_D(D)   HWY_IF_FLOAT3264(hwy::HWY_NAMESPACE::TFromD<D>)
 
#define HWY_IF_NOT_FLOAT3264_D(D)    HWY_IF_NOT_FLOAT3264(hwy::HWY_NAMESPACE::TFromD<D>)
 
#define HWY_IF_SPECIAL_FLOAT_D(D)    HWY_IF_SPECIAL_FLOAT(hwy::HWY_NAMESPACE::TFromD<D>)
 
#define HWY_IF_NOT_SPECIAL_FLOAT_D(D)    HWY_IF_NOT_SPECIAL_FLOAT(hwy::HWY_NAMESPACE::TFromD<D>)
 
#define HWY_IF_FLOAT_OR_SPECIAL_D(D)    HWY_IF_FLOAT_OR_SPECIAL(hwy::HWY_NAMESPACE::TFromD<D>)
 
#define HWY_IF_NOT_FLOAT_NOR_SPECIAL_D(D)    HWY_IF_NOT_FLOAT_NOR_SPECIAL(hwy::HWY_NAMESPACE::TFromD<D>)
 
#define HWY_IF_T_SIZE_D(D, bytes)    HWY_IF_T_SIZE(hwy::HWY_NAMESPACE::TFromD<D>, bytes)
 
#define HWY_IF_NOT_T_SIZE_D(D, bytes)    HWY_IF_NOT_T_SIZE(hwy::HWY_NAMESPACE::TFromD<D>, bytes)
 
#define HWY_IF_T_SIZE_ONE_OF_D(D, bit_array)    HWY_IF_T_SIZE_ONE_OF(hwy::HWY_NAMESPACE::TFromD<D>, bit_array)
 
#define HWY_IF_T_SIZE_LE_D(D, bytes)    HWY_IF_T_SIZE_LE(hwy::HWY_NAMESPACE::TFromD<D>, bytes)
 
#define HWY_IF_T_SIZE_GT_D(D, bytes)    HWY_IF_T_SIZE_GT(hwy::HWY_NAMESPACE::TFromD<D>, bytes)
 
#define HWY_IF_LANES_D(D, lanes)   HWY_IF_LANES(HWY_MAX_LANES_D(D), lanes)
 
#define HWY_IF_LANES_LE_D(D, lanes)   HWY_IF_LANES_LE(HWY_MAX_LANES_D(D), lanes)
 
#define HWY_IF_LANES_GT_D(D, lanes)   HWY_IF_LANES_GT(HWY_MAX_LANES_D(D), lanes)
 
#define HWY_IF_LANES_PER_BLOCK_D(D, lanes)
 
#define HWY_IF_POW2_LE_D(D, pow2)   hwy::EnableIf<D().Pow2() <= pow2>* = nullptr
 
#define HWY_IF_POW2_GT_D(D, pow2)   hwy::EnableIf<(D().Pow2() > pow2)>* = nullptr
 
#define HWY_IF_U8_D(D)   HWY_IF_U8(hwy::HWY_NAMESPACE::TFromD<D>)
 
#define HWY_IF_U16_D(D)   HWY_IF_U16(hwy::HWY_NAMESPACE::TFromD<D>)
 
#define HWY_IF_U32_D(D)   HWY_IF_U32(hwy::HWY_NAMESPACE::TFromD<D>)
 
#define HWY_IF_U64_D(D)   HWY_IF_U64(hwy::HWY_NAMESPACE::TFromD<D>)
 
#define HWY_IF_I8_D(D)   HWY_IF_I8(hwy::HWY_NAMESPACE::TFromD<D>)
 
#define HWY_IF_I16_D(D)   HWY_IF_I16(hwy::HWY_NAMESPACE::TFromD<D>)
 
#define HWY_IF_I32_D(D)   HWY_IF_I32(hwy::HWY_NAMESPACE::TFromD<D>)
 
#define HWY_IF_I64_D(D)   HWY_IF_I64(hwy::HWY_NAMESPACE::TFromD<D>)
 
#define HWY_IF_UI8_D(D)   HWY_IF_UI8(hwy::HWY_NAMESPACE::TFromD<D>)
 
#define HWY_IF_UI16_D(D)   HWY_IF_UI16(hwy::HWY_NAMESPACE::TFromD<D>)
 
#define HWY_IF_UI32_D(D)   HWY_IF_UI32(hwy::HWY_NAMESPACE::TFromD<D>)
 
#define HWY_IF_UI64_D(D)   HWY_IF_UI64(hwy::HWY_NAMESPACE::TFromD<D>)
 
#define HWY_IF_BF16_D(D)   HWY_IF_BF16(hwy::HWY_NAMESPACE::TFromD<D>)
 
#define HWY_IF_NOT_BF16_D(D)   HWY_IF_NOT_BF16(hwy::HWY_NAMESPACE::TFromD<D>)
 
#define HWY_IF_F16_D(D)   HWY_IF_F16(hwy::HWY_NAMESPACE::TFromD<D>)
 
#define HWY_IF_NOT_F16_D(D)   HWY_IF_NOT_F16(hwy::HWY_NAMESPACE::TFromD<D>)
 
#define HWY_IF_F32_D(D)   HWY_IF_F32(hwy::HWY_NAMESPACE::TFromD<D>)
 
#define HWY_IF_F64_D(D)   HWY_IF_F64(hwy::HWY_NAMESPACE::TFromD<D>)
 
#define HWY_V_SIZE_D(D)    (HWY_MAX_LANES_D(D) * sizeof(hwy::HWY_NAMESPACE::TFromD<D>))
 
#define HWY_IF_V_SIZE_D(D, bytes)    HWY_IF_V_SIZE(hwy::HWY_NAMESPACE::TFromD<D>, HWY_MAX_LANES_D(D), bytes)
 
#define HWY_IF_V_SIZE_LE_D(D, bytes)    HWY_IF_V_SIZE_LE(hwy::HWY_NAMESPACE::TFromD<D>, HWY_MAX_LANES_D(D), bytes)
 
#define HWY_IF_V_SIZE_GT_D(D, bytes)    HWY_IF_V_SIZE_GT(hwy::HWY_NAMESPACE::TFromD<D>, HWY_MAX_LANES_D(D), bytes)
 
#define HWY_IF_UNSIGNED_V(V)   HWY_IF_UNSIGNED(hwy::HWY_NAMESPACE::TFromV<V>)
 
#define HWY_IF_NOT_UNSIGNED_V(V)    HWY_IF_NOT_UNSIGNED(hwy::HWY_NAMESPACE::TFromV<V>)
 
#define HWY_IF_SIGNED_V(V)   HWY_IF_SIGNED(hwy::HWY_NAMESPACE::TFromV<V>)
 
#define HWY_IF_FLOAT_V(V)   HWY_IF_FLOAT(hwy::HWY_NAMESPACE::TFromV<V>)
 
#define HWY_IF_NOT_FLOAT_V(V)   HWY_IF_NOT_FLOAT(hwy::HWY_NAMESPACE::TFromV<V>)
 
#define HWY_IF_SPECIAL_FLOAT_V(V)    HWY_IF_SPECIAL_FLOAT(hwy::HWY_NAMESPACE::TFromV<V>)
 
#define HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V)    HWY_IF_NOT_FLOAT_NOR_SPECIAL(hwy::HWY_NAMESPACE::TFromV<V>)
 
#define HWY_IF_T_SIZE_V(V, bytes)    HWY_IF_T_SIZE(hwy::HWY_NAMESPACE::TFromV<V>, bytes)
 
#define HWY_IF_NOT_T_SIZE_V(V, bytes)    HWY_IF_NOT_T_SIZE(hwy::HWY_NAMESPACE::TFromV<V>, bytes)
 
#define HWY_IF_T_SIZE_ONE_OF_V(V, bit_array)    HWY_IF_T_SIZE_ONE_OF(hwy::HWY_NAMESPACE::TFromV<V>, bit_array)
 
#define HWY_MAX_LANES_V(V)   HWY_MAX_LANES_D(DFromV<V>)
 
#define HWY_IF_V_SIZE_V(V, bytes)    HWY_IF_V_SIZE(hwy::HWY_NAMESPACE::TFromV<V>, HWY_MAX_LANES_V(V), bytes)
 
#define HWY_IF_V_SIZE_LE_V(V, bytes)    HWY_IF_V_SIZE_LE(hwy::HWY_NAMESPACE::TFromV<V>, HWY_MAX_LANES_V(V), bytes)
 
#define HWY_IF_V_SIZE_GT_V(V, bytes)    HWY_IF_V_SIZE_GT(hwy::HWY_NAMESPACE::TFromV<V>, HWY_MAX_LANES_V(V), bytes)
 
#define HWY_IF_REDUCE_D(D)
 
#define HWY_IF_SUM_OF_LANES_D(D)   HWY_IF_LANES_GT_D(D, 1)
 
#define HWY_IF_MINMAX_OF_LANES_D(D)   HWY_IF_LANES_GT_D(D, 1)
 
#define HWY_IF_ADDSUB_V(V)   HWY_IF_LANES_GT_D(DFromV<V>, 1)
 
#define HWY_IF_MULADDSUB_V(V)   HWY_IF_LANES_GT_D(DFromV<V>, 1)
 
#define HWY_IF_U2I_DEMOTE_FROM_LANE_SIZE_V(V)   void* = nullptr
 
#define HWY_IF_LANE_SIZE_D(D, bytes)   HWY_IF_T_SIZE_D(D, bytes)
 
#define HWY_IF_NOT_LANE_SIZE_D(D, bytes)   HWY_IF_NOT_T_SIZE_D(D, bytes)
 

Typedefs

template<class V >
using hwy::HWY_NAMESPACE::VecArg = V
 
template<typename T >
using hwy::HWY_NAMESPACE::detail::NativeLaneType = typename NativeLaneTypeT<T>::type
 
template<typename T , int kPow2 = 0>
using hwy::HWY_NAMESPACE::ScalableTag = typename detail::ScalableTagChecker<T, kPow2>::type
 
template<typename T , size_t kLimit, int kPow2 = 0>
using hwy::HWY_NAMESPACE::CappedTag = typename detail::CappedTagChecker<T, kLimit, kPow2>::type
 
template<typename T , size_t kLimit, int kPow2 = 0>
using hwy::HWY_NAMESPACE::CappedTagIfFixed = CappedTag<T, kLimit, kPow2>
 
template<typename T , size_t kNumLanes>
using hwy::HWY_NAMESPACE::FixedTag = typename detail::FixedTagChecker<T, kNumLanes>::type
 
template<typename T >
using hwy::HWY_NAMESPACE::Full16 = Simd<T, 2 / sizeof(T), 0>
 
template<typename T >
using hwy::HWY_NAMESPACE::Full32 = Simd<T, 4 / sizeof(T), 0>
 
template<typename T >
using hwy::HWY_NAMESPACE::Full64 = Simd<T, 8 / sizeof(T), 0>
 
template<class D >
using hwy::HWY_NAMESPACE::TFromD = typename D::T
 
template<class T , class D >
using hwy::HWY_NAMESPACE::Rebind = typename D::template Rebind<T>
 
template<class D >
using hwy::HWY_NAMESPACE::RebindToSigned = Rebind<MakeSigned<TFromD<D>>, D>
 
template<class D >
using hwy::HWY_NAMESPACE::RebindToUnsigned = Rebind<MakeUnsigned<TFromD<D>>, D>
 
template<class D >
using hwy::HWY_NAMESPACE::RebindToFloat = Rebind<MakeFloat<TFromD<D>>, D>
 
template<class T , class D >
using hwy::HWY_NAMESPACE::Repartition = typename D::template Repartition<T>
 
template<class D >
using hwy::HWY_NAMESPACE::RepartitionToWide = Repartition<MakeWide<TFromD<D>>, D>
 
template<class D >
using hwy::HWY_NAMESPACE::RepartitionToNarrow = Repartition<MakeNarrow<TFromD<D>>, D>
 
template<class D >
using hwy::HWY_NAMESPACE::RepartitionToWideX2 = RepartitionToWide<RepartitionToWide<D>>
 
template<class D >
using hwy::HWY_NAMESPACE::RepartitionToWideX3 = RepartitionToWide<RepartitionToWideX2<D>>
 
template<class D >
using hwy::HWY_NAMESPACE::Half = typename D::Half
 
template<class D >
using hwy::HWY_NAMESPACE::Twice = typename D::Twice
 
template<class D >
using hwy::HWY_NAMESPACE::BlockDFromD
 

Functions

 HWY_BEFORE_NAMESPACE ()
 
template<typename T , HWY_IF_NOT_SPECIAL_FLOAT(T) >
HWY_INLINE T * hwy::HWY_NAMESPACE::detail::NativeLanePointer (T *p)
 
template<typename T , typename NT = NativeLaneType<RemoveConst<T>>, HWY_IF_F16(T) >
HWY_INLINE constexpr If< IsConst< T >(), const NT *, NT * > hwy::HWY_NAMESPACE::detail::NativeLanePointer (T *p)
 
template<typename T , HWY_IF_SPECIAL_FLOAT(T) >
HWY_INLINE If< IsConst< T >(), const uint16_t *, uint16_t * > hwy::HWY_NAMESPACE::detail::U16LanePointer (T *p)
 
constexpr size_t hwy::HWY_NAMESPACE::detail::ScaleByPower (size_t N, int pow2)
 
template<typename T >
HWY_INLINE void hwy::HWY_NAMESPACE::detail::MaybeUnpoison (T *HWY_RESTRICT unaligned, size_t count)
 
template<typename T , size_t N, int kPow2>
constexpr bool hwy::HWY_NAMESPACE::detail::IsFull (Simd< T, N, kPow2 >)
 
template<class D >
HWY_INLINE HWY_MAYBE_UNUSED constexpr size_t hwy::HWY_NAMESPACE::MaxLanes (D)
 
template<class D >
HWY_INLINE HWY_MAYBE_UNUSED constexpr size_t hwy::HWY_NAMESPACE::Lanes (D)
 
template<class D , typename T >
HWY_API bool hwy::HWY_NAMESPACE::IsAligned (D d, T *ptr)
 
 HWY_AFTER_NAMESPACE ()
 

Macro Definition Documentation

◆ HIGHWAY_HWY_OPS_SHARED_TOGGLE

#define HIGHWAY_HWY_OPS_SHARED_TOGGLE

◆ HWY_IF_ADDSUB_V

#define HWY_IF_ADDSUB_V ( V)    HWY_IF_LANES_GT_D(DFromV<V>, 1)

◆ HWY_IF_BF16_D

#define HWY_IF_BF16_D ( D)    HWY_IF_BF16(hwy::HWY_NAMESPACE::TFromD<D>)

◆ HWY_IF_F16_D

#define HWY_IF_F16_D ( D)    HWY_IF_F16(hwy::HWY_NAMESPACE::TFromD<D>)

◆ HWY_IF_F32_D

#define HWY_IF_F32_D ( D)    HWY_IF_F32(hwy::HWY_NAMESPACE::TFromD<D>)

◆ HWY_IF_F64_D

#define HWY_IF_F64_D ( D)    HWY_IF_F64(hwy::HWY_NAMESPACE::TFromD<D>)

◆ HWY_IF_FLOAT3264_D

#define HWY_IF_FLOAT3264_D ( D)    HWY_IF_FLOAT3264(hwy::HWY_NAMESPACE::TFromD<D>)

◆ HWY_IF_FLOAT_D

#define HWY_IF_FLOAT_D ( D)    HWY_IF_FLOAT(hwy::HWY_NAMESPACE::TFromD<D>)

◆ HWY_IF_FLOAT_OR_SPECIAL_D

#define HWY_IF_FLOAT_OR_SPECIAL_D ( D)     HWY_IF_FLOAT_OR_SPECIAL(hwy::HWY_NAMESPACE::TFromD<D>)

◆ HWY_IF_FLOAT_V

#define HWY_IF_FLOAT_V ( V)    HWY_IF_FLOAT(hwy::HWY_NAMESPACE::TFromV<V>)

◆ HWY_IF_I16_D

#define HWY_IF_I16_D ( D)    HWY_IF_I16(hwy::HWY_NAMESPACE::TFromD<D>)

◆ HWY_IF_I32_D

#define HWY_IF_I32_D ( D)    HWY_IF_I32(hwy::HWY_NAMESPACE::TFromD<D>)

◆ HWY_IF_I64_D

#define HWY_IF_I64_D ( D)    HWY_IF_I64(hwy::HWY_NAMESPACE::TFromD<D>)

◆ HWY_IF_I8_D

#define HWY_IF_I8_D ( D)    HWY_IF_I8(hwy::HWY_NAMESPACE::TFromD<D>)

◆ HWY_IF_LANE_SIZE_D

#define HWY_IF_LANE_SIZE_D ( D,
bytes )   HWY_IF_T_SIZE_D(D, bytes)

◆ HWY_IF_LANES_D

#define HWY_IF_LANES_D ( D,
lanes )   HWY_IF_LANES(HWY_MAX_LANES_D(D), lanes)

◆ HWY_IF_LANES_GT_D

#define HWY_IF_LANES_GT_D ( D,
lanes )   HWY_IF_LANES_GT(HWY_MAX_LANES_D(D), lanes)

◆ HWY_IF_LANES_LE_D

#define HWY_IF_LANES_LE_D ( D,
lanes )   HWY_IF_LANES_LE(HWY_MAX_LANES_D(D), lanes)

◆ HWY_IF_LANES_PER_BLOCK_D

#define HWY_IF_LANES_PER_BLOCK_D ( D,
lanes )
Value:
lanes)
#define HWY_IF_LANES_PER_BLOCK(T, N, LANES)
Definition base.h:689
typename D::T TFromD
Definition ops/shared-inl.h:426
#define HWY_MAX_LANES_D(D)
Definition ops/shared-inl.h:432

◆ HWY_IF_MINMAX_OF_LANES_D

#define HWY_IF_MINMAX_OF_LANES_D ( D)    HWY_IF_LANES_GT_D(D, 1)

◆ HWY_IF_MULADDSUB_V

#define HWY_IF_MULADDSUB_V ( V)    HWY_IF_LANES_GT_D(DFromV<V>, 1)

◆ HWY_IF_NOT_BF16_D

#define HWY_IF_NOT_BF16_D ( D)    HWY_IF_NOT_BF16(hwy::HWY_NAMESPACE::TFromD<D>)

◆ HWY_IF_NOT_F16_D

#define HWY_IF_NOT_F16_D ( D)    HWY_IF_NOT_F16(hwy::HWY_NAMESPACE::TFromD<D>)

◆ HWY_IF_NOT_FLOAT3264_D

#define HWY_IF_NOT_FLOAT3264_D ( D)     HWY_IF_NOT_FLOAT3264(hwy::HWY_NAMESPACE::TFromD<D>)

◆ HWY_IF_NOT_FLOAT_D

#define HWY_IF_NOT_FLOAT_D ( D)    HWY_IF_NOT_FLOAT(hwy::HWY_NAMESPACE::TFromD<D>)

◆ HWY_IF_NOT_FLOAT_NOR_SPECIAL_D

#define HWY_IF_NOT_FLOAT_NOR_SPECIAL_D ( D)     HWY_IF_NOT_FLOAT_NOR_SPECIAL(hwy::HWY_NAMESPACE::TFromD<D>)

◆ HWY_IF_NOT_FLOAT_NOR_SPECIAL_V

#define HWY_IF_NOT_FLOAT_NOR_SPECIAL_V ( V)     HWY_IF_NOT_FLOAT_NOR_SPECIAL(hwy::HWY_NAMESPACE::TFromV<V>)

◆ HWY_IF_NOT_FLOAT_V

#define HWY_IF_NOT_FLOAT_V ( V)    HWY_IF_NOT_FLOAT(hwy::HWY_NAMESPACE::TFromV<V>)

◆ HWY_IF_NOT_LANE_SIZE_D

#define HWY_IF_NOT_LANE_SIZE_D ( D,
bytes )   HWY_IF_NOT_T_SIZE_D(D, bytes)

◆ HWY_IF_NOT_SPECIAL_FLOAT_D

#define HWY_IF_NOT_SPECIAL_FLOAT_D ( D)     HWY_IF_NOT_SPECIAL_FLOAT(hwy::HWY_NAMESPACE::TFromD<D>)

◆ HWY_IF_NOT_T_SIZE_D

#define HWY_IF_NOT_T_SIZE_D ( D,
bytes )    HWY_IF_NOT_T_SIZE(hwy::HWY_NAMESPACE::TFromD<D>, bytes)

◆ HWY_IF_NOT_T_SIZE_V

#define HWY_IF_NOT_T_SIZE_V ( V,
bytes )    HWY_IF_NOT_T_SIZE(hwy::HWY_NAMESPACE::TFromV<V>, bytes)

◆ HWY_IF_NOT_UNSIGNED_D

#define HWY_IF_NOT_UNSIGNED_D ( D)     HWY_IF_NOT_UNSIGNED(hwy::HWY_NAMESPACE::TFromD<D>)

◆ HWY_IF_NOT_UNSIGNED_V

#define HWY_IF_NOT_UNSIGNED_V ( V)     HWY_IF_NOT_UNSIGNED(hwy::HWY_NAMESPACE::TFromV<V>)

◆ HWY_IF_POW2_GT_D

#define HWY_IF_POW2_GT_D ( D,
pow2 )   hwy::EnableIf<(D().Pow2() > pow2)>* = nullptr

◆ HWY_IF_POW2_LE_D

#define HWY_IF_POW2_LE_D ( D,
pow2 )   hwy::EnableIf<D().Pow2() <= pow2>* = nullptr

◆ HWY_IF_REDUCE_D

#define HWY_IF_REDUCE_D ( D)
Value:
(HWY_MAX_LANES_D(D) != 4 || \
sizeof(hwy::HWY_NAMESPACE::TFromD<D>) != 1)>* = nullptr
typename EnableIfT< Condition >::type EnableIf
Definition base.h:486

◆ HWY_IF_SIGNED_D

#define HWY_IF_SIGNED_D ( D)    HWY_IF_SIGNED(hwy::HWY_NAMESPACE::TFromD<D>)

◆ HWY_IF_SIGNED_V

#define HWY_IF_SIGNED_V ( V)    HWY_IF_SIGNED(hwy::HWY_NAMESPACE::TFromV<V>)

◆ HWY_IF_SPECIAL_FLOAT_D

#define HWY_IF_SPECIAL_FLOAT_D ( D)     HWY_IF_SPECIAL_FLOAT(hwy::HWY_NAMESPACE::TFromD<D>)

◆ HWY_IF_SPECIAL_FLOAT_V

#define HWY_IF_SPECIAL_FLOAT_V ( V)     HWY_IF_SPECIAL_FLOAT(hwy::HWY_NAMESPACE::TFromV<V>)

◆ HWY_IF_SUM_OF_LANES_D

#define HWY_IF_SUM_OF_LANES_D ( D)    HWY_IF_LANES_GT_D(D, 1)

◆ HWY_IF_T_SIZE_D

#define HWY_IF_T_SIZE_D ( D,
bytes )    HWY_IF_T_SIZE(hwy::HWY_NAMESPACE::TFromD<D>, bytes)

◆ HWY_IF_T_SIZE_GT_D

#define HWY_IF_T_SIZE_GT_D ( D,
bytes )    HWY_IF_T_SIZE_GT(hwy::HWY_NAMESPACE::TFromD<D>, bytes)

◆ HWY_IF_T_SIZE_LE_D

#define HWY_IF_T_SIZE_LE_D ( D,
bytes )    HWY_IF_T_SIZE_LE(hwy::HWY_NAMESPACE::TFromD<D>, bytes)

◆ HWY_IF_T_SIZE_ONE_OF_D

#define HWY_IF_T_SIZE_ONE_OF_D ( D,
bit_array )    HWY_IF_T_SIZE_ONE_OF(hwy::HWY_NAMESPACE::TFromD<D>, bit_array)

◆ HWY_IF_T_SIZE_ONE_OF_V

#define HWY_IF_T_SIZE_ONE_OF_V ( V,
bit_array )    HWY_IF_T_SIZE_ONE_OF(hwy::HWY_NAMESPACE::TFromV<V>, bit_array)

◆ HWY_IF_T_SIZE_V

#define HWY_IF_T_SIZE_V ( V,
bytes )    HWY_IF_T_SIZE(hwy::HWY_NAMESPACE::TFromV<V>, bytes)

◆ HWY_IF_U16_D

#define HWY_IF_U16_D ( D)    HWY_IF_U16(hwy::HWY_NAMESPACE::TFromD<D>)

◆ HWY_IF_U2I_DEMOTE_FROM_LANE_SIZE_V

#define HWY_IF_U2I_DEMOTE_FROM_LANE_SIZE_V ( V)    void* = nullptr

◆ HWY_IF_U32_D

#define HWY_IF_U32_D ( D)    HWY_IF_U32(hwy::HWY_NAMESPACE::TFromD<D>)

◆ HWY_IF_U64_D

#define HWY_IF_U64_D ( D)    HWY_IF_U64(hwy::HWY_NAMESPACE::TFromD<D>)

◆ HWY_IF_U8_D

#define HWY_IF_U8_D ( D)    HWY_IF_U8(hwy::HWY_NAMESPACE::TFromD<D>)

◆ HWY_IF_UI16_D

#define HWY_IF_UI16_D ( D)    HWY_IF_UI16(hwy::HWY_NAMESPACE::TFromD<D>)

◆ HWY_IF_UI32_D

#define HWY_IF_UI32_D ( D)    HWY_IF_UI32(hwy::HWY_NAMESPACE::TFromD<D>)

◆ HWY_IF_UI64_D

#define HWY_IF_UI64_D ( D)    HWY_IF_UI64(hwy::HWY_NAMESPACE::TFromD<D>)

◆ HWY_IF_UI8_D

#define HWY_IF_UI8_D ( D)    HWY_IF_UI8(hwy::HWY_NAMESPACE::TFromD<D>)

◆ HWY_IF_UNSIGNED_D

#define HWY_IF_UNSIGNED_D ( D)    HWY_IF_UNSIGNED(hwy::HWY_NAMESPACE::TFromD<D>)

◆ HWY_IF_UNSIGNED_V

#define HWY_IF_UNSIGNED_V ( V)    HWY_IF_UNSIGNED(hwy::HWY_NAMESPACE::TFromV<V>)

◆ HWY_IF_V_SIZE_D

#define HWY_IF_V_SIZE_D ( D,
bytes )    HWY_IF_V_SIZE(hwy::HWY_NAMESPACE::TFromD<D>, HWY_MAX_LANES_D(D), bytes)

◆ HWY_IF_V_SIZE_GT_D

#define HWY_IF_V_SIZE_GT_D ( D,
bytes )    HWY_IF_V_SIZE_GT(hwy::HWY_NAMESPACE::TFromD<D>, HWY_MAX_LANES_D(D), bytes)

◆ HWY_IF_V_SIZE_GT_V

#define HWY_IF_V_SIZE_GT_V ( V,
bytes )    HWY_IF_V_SIZE_GT(hwy::HWY_NAMESPACE::TFromV<V>, HWY_MAX_LANES_V(V), bytes)

◆ HWY_IF_V_SIZE_LE_D

#define HWY_IF_V_SIZE_LE_D ( D,
bytes )    HWY_IF_V_SIZE_LE(hwy::HWY_NAMESPACE::TFromD<D>, HWY_MAX_LANES_D(D), bytes)

◆ HWY_IF_V_SIZE_LE_V

#define HWY_IF_V_SIZE_LE_V ( V,
bytes )    HWY_IF_V_SIZE_LE(hwy::HWY_NAMESPACE::TFromV<V>, HWY_MAX_LANES_V(V), bytes)

◆ HWY_IF_V_SIZE_V

#define HWY_IF_V_SIZE_V ( V,
bytes )    HWY_IF_V_SIZE(hwy::HWY_NAMESPACE::TFromV<V>, HWY_MAX_LANES_V(V), bytes)

◆ HWY_MAX_LANES_D

#define HWY_MAX_LANES_D ( D)    D::kPrivateLanes

◆ HWY_MAX_LANES_V

#define HWY_MAX_LANES_V ( V)    HWY_MAX_LANES_D(DFromV<V>)

◆ HWY_POW2_D

#define HWY_POW2_D ( D)    D::kPrivatePow2

◆ HWY_V_SIZE_D

#define HWY_V_SIZE_D ( D)     (HWY_MAX_LANES_D(D) * sizeof(hwy::HWY_NAMESPACE::TFromD<D>))

Function Documentation

◆ HWY_AFTER_NAMESPACE()

HWY_AFTER_NAMESPACE ( )

◆ HWY_BEFORE_NAMESPACE()

HWY_BEFORE_NAMESPACE ( )