|
#define | HWY_STR_IMPL(macro) #macro |
|
#define | HWY_STR(macro) HWY_STR_IMPL(macro) |
|
#define | HWY_RESTRICT __restrict__ |
|
#define | HWY_INLINE inline __attribute__((always_inline)) |
|
#define | HWY_NOINLINE __attribute__((noinline)) |
|
#define | HWY_FLATTEN __attribute__((flatten)) |
|
#define | HWY_NORETURN __attribute__((noreturn)) |
|
#define | HWY_LIKELY(expr) __builtin_expect(!!(expr), 1) |
|
#define | HWY_UNLIKELY(expr) __builtin_expect(!!(expr), 0) |
|
#define | HWY_PRAGMA(tokens) _Pragma(#tokens) |
|
#define | HWY_DIAGNOSTICS(tokens) HWY_PRAGMA(GCC diagnostic tokens) |
|
#define | HWY_DIAGNOSTICS_OFF(msc, gcc) HWY_DIAGNOSTICS(gcc) |
|
#define | HWY_MAYBE_UNUSED __attribute__((unused)) |
|
#define | HWY_MUST_USE_RESULT __attribute__((warn_unused_result)) |
|
#define | HWY_FORMAT(idx_fmt, idx_arg) |
|
#define | HWY_ASSUME_ALIGNED(ptr, align) (ptr) /* not supported */ |
|
#define | HWY_PUSH_ATTRIBUTES(targets_str) |
|
#define | HWY_POP_ATTRIBUTES |
|
#define | HWY_API static HWY_INLINE HWY_FLATTEN HWY_MAYBE_UNUSED |
|
#define | HWY_CONCAT_IMPL(a, b) a##b |
|
#define | HWY_CONCAT(a, b) HWY_CONCAT_IMPL(a, b) |
|
#define | HWY_MIN(a, b) ((a) < (b) ? (a) : (b)) |
|
#define | HWY_MAX(a, b) ((a) > (b) ? (a) : (b)) |
|
#define | HWY_FENCE |
|
#define | HWY_REP4(literal) literal, literal, literal, literal |
|
#define | HWY_ABORT(format, ...) ::hwy::Abort(__FILE__, __LINE__, format, ##__VA_ARGS__) |
|
#define | HWY_ASSERT(condition) |
|
#define | HWY_IS_MSAN 0 |
|
#define | HWY_IS_ASAN 0 |
|
#define | HWY_IS_TSAN 0 |
|
#define | HWY_ATTR_NO_MSAN |
|
#define | HWY_IS_DEBUG_BUILD 1 |
|
#define | HWY_DASSERT(condition) HWY_ASSERT(condition) |
|
#define | HWY_ALIGN_MAX alignas(16) |
|
#define | HWY_NATIVE_FLOAT16 0 |
|
#define | HWY_IF_LE128(T, N) hwy::EnableIf<N * sizeof(T) <= 16>* = nullptr |
|
#define | HWY_IF_LE64(T, N) hwy::EnableIf<N * sizeof(T) <= 8>* = nullptr |
|
#define | HWY_IF_LE32(T, N) hwy::EnableIf<N * sizeof(T) <= 4>* = nullptr |
|
#define | HWY_IF_GE32(T, N) hwy::EnableIf<N * sizeof(T) >= 4>* = nullptr |
|
#define | HWY_IF_GE64(T, N) hwy::EnableIf<N * sizeof(T) >= 8>* = nullptr |
|
#define | HWY_IF_GE128(T, N) hwy::EnableIf<N * sizeof(T) >= 16>* = nullptr |
|
#define | HWY_IF_GT128(T, N) hwy::EnableIf<(N * sizeof(T) > 16)>* = nullptr |
|
#define | HWY_IF_UNSIGNED(T) hwy::EnableIf<!IsSigned<T>()>* = nullptr |
|
#define | HWY_IF_SIGNED(T) hwy::EnableIf<IsSigned<T>() && !IsFloat<T>()>* = nullptr |
|
#define | HWY_IF_FLOAT(T) hwy::EnableIf<hwy::IsFloat<T>()>* = nullptr |
|
#define | HWY_IF_NOT_FLOAT(T) hwy::EnableIf<!hwy::IsFloat<T>()>* = nullptr |
|
#define | HWY_IF_LANE_SIZE(T, bytes) hwy::EnableIf<sizeof(T) == (bytes)>* = nullptr |
|
#define | HWY_IF_NOT_LANE_SIZE(T, bytes) hwy::EnableIf<sizeof(T) != (bytes)>* = nullptr |
|
#define | HWY_IF_LANE_SIZE_LT(T, bytes) hwy::EnableIf<sizeof(T) < (bytes)>* = nullptr |
|
#define | HWY_IF_LANES_PER_BLOCK(T, N, LANES) hwy::EnableIf<HWY_MIN(sizeof(T) * N, 16) / sizeof(T) == (LANES)>* = nullptr |
|
|
static HWY_MAYBE_UNUSED bool | hwy::operator< (const uint128_t &a, const uint128_t &b) |
|
static HWY_MAYBE_UNUSED bool | hwy::operator> (const uint128_t &a, const uint128_t &b) |
|
static HWY_MAYBE_UNUSED bool | hwy::operator< (const K64V64 &a, const K64V64 &b) |
|
static HWY_MAYBE_UNUSED bool | hwy::operator> (const K64V64 &a, const K64V64 &b) |
|
template<typename T , typename U > |
constexpr HWY_API bool | hwy::IsSame () |
|
template<typename T > |
constexpr HWY_API bool | hwy::IsFloat () |
|
template<typename T > |
constexpr HWY_API bool | hwy::IsSigned () |
|
template<> |
constexpr bool | hwy::IsSigned< float16_t > () |
|
template<> |
constexpr bool | hwy::IsSigned< bfloat16_t > () |
|
template<typename T > |
constexpr HWY_API T | hwy::LimitsMax () |
|
template<typename T > |
constexpr HWY_API T | hwy::LimitsMin () |
|
template<typename T > |
constexpr HWY_API T | hwy::LowestValue () |
|
template<> |
constexpr float | hwy::LowestValue< float > () |
|
template<> |
constexpr double | hwy::LowestValue< double > () |
|
template<typename T > |
constexpr HWY_API T | hwy::HighestValue () |
|
template<> |
constexpr float | hwy::HighestValue< float > () |
|
template<> |
constexpr double | hwy::HighestValue< double > () |
|
template<typename T > |
constexpr int | hwy::MantissaBits () |
|
template<> |
constexpr int | hwy::MantissaBits< float > () |
|
template<> |
constexpr int | hwy::MantissaBits< double > () |
|
template<typename T > |
constexpr MakeSigned< T > | hwy::MaxExponentTimes2 () |
|
template<typename T > |
constexpr MakeUnsigned< T > | hwy::SignMask () |
|
template<typename T > |
constexpr MakeUnsigned< T > | hwy::ExponentMask () |
|
template<typename T > |
constexpr MakeUnsigned< T > | hwy::MantissaMask () |
|
template<typename T > |
constexpr T | hwy::MantissaEnd () |
|
template<> |
constexpr float | hwy::MantissaEnd< float > () |
|
template<> |
constexpr double | hwy::MantissaEnd< double > () |
|
template<typename T > |
constexpr int | hwy::ExponentBits () |
|
template<typename T > |
constexpr MakeSigned< T > | hwy::MaxExponentField () |
|
template<typename T1 , typename T2 > |
constexpr T1 | hwy::DivCeil (T1 a, T2 b) |
|
constexpr size_t | hwy::RoundUpTo (size_t what, size_t align) |
|
HWY_API size_t | hwy::Num0BitsBelowLS1Bit_Nonzero32 (const uint32_t x) |
|
HWY_API size_t | hwy::Num0BitsBelowLS1Bit_Nonzero64 (const uint64_t x) |
|
HWY_API size_t | hwy::Num0BitsAboveMS1Bit_Nonzero32 (const uint32_t x) |
|
HWY_API size_t | hwy::Num0BitsAboveMS1Bit_Nonzero64 (const uint64_t x) |
|
HWY_API size_t | hwy::PopCount (uint64_t x) |
|
template<typename TI > |
constexpr size_t | hwy::FloorLog2 (TI x) |
|
template<typename TI > |
constexpr size_t | hwy::CeilLog2 (TI x) |
|
HWY_API uint64_t | hwy::Mul128 (uint64_t a, uint64_t b, uint64_t *HWY_RESTRICT upper) |
|
template<size_t kBytes, typename From , typename To > |
HWY_API void | hwy::CopyBytes (const From *from, To *to) |
|
template<size_t kBytes, typename To > |
HWY_API void | hwy::ZeroBytes (To *to) |
|
HWY_API float | hwy::F32FromBF16 (bfloat16_t bf) |
|
HWY_API bfloat16_t | hwy::BF16FromF32 (float f) |
|
HWY_DLLEXPORT HWY_NORETURN void | hwy::HWY_FORMAT (3, 4) Abort(const char *file |
|