Grok  10.0.3
Classes | Namespaces | Macros | Functions
highway.h File Reference
#include "hwy/base.h"
#include "hwy/targets.h"
#include "hwy/ops/x86_128-inl.h"
#include "hwy/ops/generic_ops-inl.h"

Go to the source code of this file.

Classes

struct  hwy::FunctionCache< RetType, Args >
 

Namespaces

 hwy
 

Macros

#define HWY_MAJOR   0
 
#define HWY_MINOR   17
 
#define HWY_PATCH   0
 
#define HWY_FULL1(T)   hwy::HWY_NAMESPACE::ScalableTag<T>
 
#define HWY_FULL2(T, LMUL)    hwy::HWY_NAMESPACE::ScalableTag<T, CeilLog2(HWY_MAX(0, LMUL))>
 
#define HWY_3TH_ARG(arg1, arg2, arg3, ...)   arg3
 
#define HWY_FULL_RECOMPOSER(args_with_paren)   HWY_3TH_ARG args_with_paren
 
#define HWY_CHOOSE_FULL(...)    HWY_FULL_RECOMPOSER((__VA_ARGS__, HWY_FULL2, HWY_FULL1, ))
 
#define HWY_FULL(...)   HWY_CHOOSE_FULL(__VA_ARGS__())(__VA_ARGS__)
 
#define HWY_CAPPED(T, MAX_N)   hwy::HWY_NAMESPACE::CappedTag<T, MAX_N>
 
#define HWY_ONCE   1
 
#define HWY_STATIC_DISPATCH(FUNC_NAME)   N_SCALAR::FUNC_NAME
 
#define HWY_CHOOSE_FALLBACK(FUNC_NAME)   &HWY_STATIC_DISPATCH(FUNC_NAME)
 
#define HWY_CHOOSE_WASM2(FUNC_NAME)   nullptr
 
#define HWY_CHOOSE_WASM(FUNC_NAME)   nullptr
 
#define HWY_CHOOSE_RVV(FUNC_NAME)   nullptr
 
#define HWY_CHOOSE_NEON(FUNC_NAME)   nullptr
 
#define HWY_CHOOSE_SVE(FUNC_NAME)   nullptr
 
#define HWY_CHOOSE_SVE2(FUNC_NAME)   nullptr
 
#define HWY_CHOOSE_SVE_256(FUNC_NAME)   nullptr
 
#define HWY_CHOOSE_SVE2_128(FUNC_NAME)   nullptr
 
#define HWY_CHOOSE_PPC8(FUNC_NAME)   nullptr
 
#define HWY_CHOOSE_SSSE3(FUNC_NAME)   nullptr
 
#define HWY_CHOOSE_SSE4(FUNC_NAME)   nullptr
 
#define HWY_CHOOSE_AVX2(FUNC_NAME)   nullptr
 
#define HWY_CHOOSE_AVX3(FUNC_NAME)   nullptr
 
#define HWY_CHOOSE_AVX3_DL(FUNC_NAME)   nullptr
 
#define HWY_DISPATCH_TABLE(FUNC_NAME)    HWY_CONCAT(FUNC_NAME, HighwayDispatchTable)
 
#define HWY_EXPORT(FUNC_NAME)
 
#define HWY_DYNAMIC_DISPATCH(FUNC_NAME)   HWY_STATIC_DISPATCH(FUNC_NAME)
 
#define HWY_CAP_INTEGER64   HWY_HAVE_INTEGER64
 
#define HWY_CAP_FLOAT16   HWY_HAVE_FLOAT16
 
#define HWY_CAP_FLOAT64   HWY_HAVE_FLOAT64
 
#define HWY_HIGHWAY_PER_TARGET
 

Functions

template<typename RetType , typename... Args>
FunctionCache< RetType, Args... > hwy::FunctionCacheFactory (RetType(*)(Args...))
 

Macro Definition Documentation

◆ HWY_3TH_ARG

#define HWY_3TH_ARG (   arg1,
  arg2,
  arg3,
  ... 
)    arg3

◆ HWY_CAP_FLOAT16

#define HWY_CAP_FLOAT16   HWY_HAVE_FLOAT16

◆ HWY_CAP_FLOAT64

#define HWY_CAP_FLOAT64   HWY_HAVE_FLOAT64

◆ HWY_CAP_INTEGER64

#define HWY_CAP_INTEGER64   HWY_HAVE_INTEGER64

◆ HWY_CAPPED

#define HWY_CAPPED (   T,
  MAX_N 
)    hwy::HWY_NAMESPACE::CappedTag<T, MAX_N>

◆ HWY_CHOOSE_AVX2

#define HWY_CHOOSE_AVX2 (   FUNC_NAME)    nullptr

◆ HWY_CHOOSE_AVX3

#define HWY_CHOOSE_AVX3 (   FUNC_NAME)    nullptr

◆ HWY_CHOOSE_AVX3_DL

#define HWY_CHOOSE_AVX3_DL (   FUNC_NAME)    nullptr

◆ HWY_CHOOSE_FALLBACK

#define HWY_CHOOSE_FALLBACK (   FUNC_NAME)    &HWY_STATIC_DISPATCH(FUNC_NAME)

◆ HWY_CHOOSE_FULL

#define HWY_CHOOSE_FULL (   ...)     HWY_FULL_RECOMPOSER((__VA_ARGS__, HWY_FULL2, HWY_FULL1, ))

◆ HWY_CHOOSE_NEON

#define HWY_CHOOSE_NEON (   FUNC_NAME)    nullptr

◆ HWY_CHOOSE_PPC8

#define HWY_CHOOSE_PPC8 (   FUNC_NAME)    nullptr

◆ HWY_CHOOSE_RVV

#define HWY_CHOOSE_RVV (   FUNC_NAME)    nullptr

◆ HWY_CHOOSE_SSE4

#define HWY_CHOOSE_SSE4 (   FUNC_NAME)    nullptr

◆ HWY_CHOOSE_SSSE3

#define HWY_CHOOSE_SSSE3 (   FUNC_NAME)    nullptr

◆ HWY_CHOOSE_SVE

#define HWY_CHOOSE_SVE (   FUNC_NAME)    nullptr

◆ HWY_CHOOSE_SVE2

#define HWY_CHOOSE_SVE2 (   FUNC_NAME)    nullptr

◆ HWY_CHOOSE_SVE2_128

#define HWY_CHOOSE_SVE2_128 (   FUNC_NAME)    nullptr

◆ HWY_CHOOSE_SVE_256

#define HWY_CHOOSE_SVE_256 (   FUNC_NAME)    nullptr

◆ HWY_CHOOSE_WASM

#define HWY_CHOOSE_WASM (   FUNC_NAME)    nullptr

◆ HWY_CHOOSE_WASM2

#define HWY_CHOOSE_WASM2 (   FUNC_NAME)    nullptr

◆ HWY_DISPATCH_TABLE

#define HWY_DISPATCH_TABLE (   FUNC_NAME)     HWY_CONCAT(FUNC_NAME, HighwayDispatchTable)

◆ HWY_DYNAMIC_DISPATCH

#define HWY_DYNAMIC_DISPATCH (   FUNC_NAME)    HWY_STATIC_DISPATCH(FUNC_NAME)

◆ HWY_EXPORT

#define HWY_EXPORT (   FUNC_NAME)
Value:
HWY_MAYBE_UNUSED static decltype(&HWY_STATIC_DISPATCH(FUNC_NAME)) const \
HWY_DISPATCH_TABLE(FUNC_NAME)[1] = {&HWY_STATIC_DISPATCH(FUNC_NAME)}
#define HWY_MAYBE_UNUSED
Definition: base.h:73
#define HWY_STATIC_DISPATCH(FUNC_NAME)
Definition: highway.h:70
#define HWY_DISPATCH_TABLE(FUNC_NAME)
Definition: highway.h:229

◆ HWY_FULL

#define HWY_FULL (   ...)    HWY_CHOOSE_FULL(__VA_ARGS__())(__VA_ARGS__)

◆ HWY_FULL1

#define HWY_FULL1 (   T)    hwy::HWY_NAMESPACE::ScalableTag<T>

◆ HWY_FULL2

#define HWY_FULL2 (   T,
  LMUL 
)     hwy::HWY_NAMESPACE::ScalableTag<T, CeilLog2(HWY_MAX(0, LMUL))>

◆ HWY_FULL_RECOMPOSER

#define HWY_FULL_RECOMPOSER (   args_with_paren)    HWY_3TH_ARG args_with_paren

◆ HWY_HIGHWAY_PER_TARGET

#define HWY_HIGHWAY_PER_TARGET

◆ HWY_MAJOR

#define HWY_MAJOR   0

◆ HWY_MINOR

#define HWY_MINOR   17

◆ HWY_ONCE

#define HWY_ONCE   1

◆ HWY_PATCH

#define HWY_PATCH   0

◆ HWY_STATIC_DISPATCH

#define HWY_STATIC_DISPATCH (   FUNC_NAME)    N_SCALAR::FUNC_NAME