Grok 12.0.1
Classes | Namespaces | Macros | Functions
highway.h File Reference
#include "hwy/base.h"
#include "hwy/detect_compiler_arch.h"
#include "hwy/highway_export.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

namespace  hwy
 

Macros

#define HWY_MAJOR   1
 
#define HWY_MINOR   1
 
#define HWY_PATCH   0
 
#define HWY_FULL1(T)   hwy::HWY_NAMESPACE::ScalableTag<T>
 
#define HWY_FULL2(T, LMUL)    hwy::HWY_NAMESPACE::ScalableTag<T, hwy::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_WASM_EMU256(FUNC_NAME)   nullptr
 
#define HWY_CHOOSE_WASM(FUNC_NAME)   nullptr
 
#define HWY_CHOOSE_RVV(FUNC_NAME)   nullptr
 
#define HWY_CHOOSE_NEON_WITHOUT_AES(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_PPC9(FUNC_NAME)   nullptr
 
#define HWY_CHOOSE_PPC10(FUNC_NAME)   nullptr
 
#define HWY_CHOOSE_Z14(FUNC_NAME)   nullptr
 
#define HWY_CHOOSE_Z15(FUNC_NAME)   nullptr
 
#define HWY_CHOOSE_SSE2(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_CHOOSE_AVX3_ZEN4(FUNC_NAME)   nullptr
 
#define HWY_CHOOSE_AVX3_SPR(FUNC_NAME)   nullptr
 
#define HWY_DISPATCH_WORKAROUND   0
 
#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_DYNAMIC_POINTER(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::DeduceFunctionCache (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_AVX3_SPR

#define HWY_CHOOSE_AVX3_SPR ( FUNC_NAME)    nullptr

◆ HWY_CHOOSE_AVX3_ZEN4

#define HWY_CHOOSE_AVX3_ZEN4 ( 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_NEON_WITHOUT_AES

#define HWY_CHOOSE_NEON_WITHOUT_AES ( FUNC_NAME)    nullptr

◆ HWY_CHOOSE_PPC10

#define HWY_CHOOSE_PPC10 ( FUNC_NAME)    nullptr

◆ HWY_CHOOSE_PPC8

#define HWY_CHOOSE_PPC8 ( FUNC_NAME)    nullptr

◆ HWY_CHOOSE_PPC9

#define HWY_CHOOSE_PPC9 ( FUNC_NAME)    nullptr

◆ HWY_CHOOSE_RVV

#define HWY_CHOOSE_RVV ( FUNC_NAME)    nullptr

◆ HWY_CHOOSE_SSE2

#define HWY_CHOOSE_SSE2 ( 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_WASM_EMU256

#define HWY_CHOOSE_WASM_EMU256 ( FUNC_NAME)    nullptr

◆ HWY_CHOOSE_Z14

#define HWY_CHOOSE_Z14 ( FUNC_NAME)    nullptr

◆ HWY_CHOOSE_Z15

#define HWY_CHOOSE_Z15 ( FUNC_NAME)    nullptr

◆ HWY_DISPATCH_TABLE

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

◆ HWY_DISPATCH_WORKAROUND

#define HWY_DISPATCH_WORKAROUND   0

◆ HWY_DYNAMIC_DISPATCH

#define HWY_DYNAMIC_DISPATCH ( FUNC_NAME)    HWY_STATIC_DISPATCH(FUNC_NAME)

◆ HWY_DYNAMIC_POINTER

#define HWY_DYNAMIC_POINTER ( 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:113
#define HWY_STATIC_DISPATCH(FUNC_NAME)
Definition highway.h:74
#define HWY_DISPATCH_TABLE(FUNC_NAME)
Definition highway.h:314

◆ 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, hwy::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   1

◆ HWY_MINOR

#define HWY_MINOR   1

◆ 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