Grok  9.5.0
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   14
 
#define HWY_PATCH   2
 
#define HWY_FULL1(T)   hwy::HWY_NAMESPACE::Simd<T, HWY_LANES(T)>
 
#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::Simd<T, HWY_MIN(MAX_N, HWY_LANES(T))>
 
#define HWY_ONCE   1
 
#define HWY_STATIC_DISPATCH(FUNC_NAME)   N_SCALAR::FUNC_NAME
 
#define HWY_CHOOSE_SCALAR(FUNC_NAME)   &HWY_STATIC_DISPATCH(FUNC_NAME)
 
#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_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_HIGHWAY_PER_TARGET
 
#define HWY_FULL2(T, LMUL)   hwy::HWY_NAMESPACE::Simd<T, HWY_LANES(T) * (LMUL)>
 

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_CAPPED

#define HWY_CAPPED (   T,
  MAX_N 
)     hwy::HWY_NAMESPACE::Simd<T, HWY_MIN(MAX_N, HWY_LANES(T))>

◆ 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_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_SCALAR

#define HWY_CHOOSE_SCALAR (   FUNC_NAME)    &HWY_STATIC_DISPATCH(FUNC_NAME)

◆ 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_WASM

#define HWY_CHOOSE_WASM (   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:70
#define HWY_STATIC_DISPATCH(FUNC_NAME)
Definition: highway.h:66
#define HWY_DISPATCH_TABLE(FUNC_NAME)
Definition: highway.h:197

◆ HWY_FULL

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

◆ HWY_FULL1

#define HWY_FULL1 (   T)    hwy::HWY_NAMESPACE::Simd<T, HWY_LANES(T)>

◆ HWY_FULL2

#define HWY_FULL2 (   T,
  LMUL 
)    hwy::HWY_NAMESPACE::Simd<T, HWY_LANES(T) * (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   14

◆ HWY_ONCE

#define HWY_ONCE   1

◆ HWY_PATCH

#define HWY_PATCH   2

◆ HWY_STATIC_DISPATCH

#define HWY_STATIC_DISPATCH (   FUNC_NAME)    N_SCALAR::FUNC_NAME