Grok
9.7.5
|
#include <stddef.h>
#include <stdint.h>
#include <cfloat>
#include "hwy/detect_compiler_arch.h"
#include "hwy/highway_export.h"
Go to the source code of this file.
Classes | |
struct | hwy::float16_t |
struct | hwy::bfloat16_t |
struct | hwy::EnableIfT< Condition > |
struct | hwy::EnableIfT< true > |
struct | hwy::IsSameT< T, U > |
struct | hwy::IsSameT< T, T > |
struct | hwy::SizeTag< N > |
struct | hwy::RemoveConstT< T > |
struct | hwy::RemoveConstT< const T > |
struct | hwy::detail::Relations< uint8_t > |
struct | hwy::detail::Relations< int8_t > |
struct | hwy::detail::Relations< uint16_t > |
struct | hwy::detail::Relations< int16_t > |
struct | hwy::detail::Relations< uint32_t > |
struct | hwy::detail::Relations< int32_t > |
struct | hwy::detail::Relations< uint64_t > |
struct | hwy::detail::Relations< int64_t > |
struct | hwy::detail::Relations< float16_t > |
struct | hwy::detail::Relations< bfloat16_t > |
struct | hwy::detail::Relations< float > |
struct | hwy::detail::Relations< double > |
struct | hwy::detail::TypeFromSize< 1 > |
struct | hwy::detail::TypeFromSize< 2 > |
struct | hwy::detail::TypeFromSize< 4 > |
struct | hwy::detail::TypeFromSize< 8 > |
Namespaces | |
hwy | |
hwy::detail | |
Macros | |
#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 |
Typedefs | |
using | hwy::float32_t = float |
using | hwy::float64_t = double |
template<bool Condition> | |
using | hwy::EnableIf = typename EnableIfT< Condition >::type |
template<class T > | |
using | hwy::RemoveConst = typename RemoveConstT< T >::type |
template<typename T > | |
using | hwy::MakeUnsigned = typename detail::Relations< T >::Unsigned |
template<typename T > | |
using | hwy::MakeSigned = typename detail::Relations< T >::Signed |
template<typename T > | |
using | hwy::MakeFloat = typename detail::Relations< T >::Float |
template<typename T > | |
using | hwy::MakeWide = typename detail::Relations< T >::Wide |
template<typename T > | |
using | hwy::MakeNarrow = typename detail::Relations< T >::Narrow |
template<size_t N> | |
using | hwy::UnsignedFromSize = typename detail::TypeFromSize< N >::Unsigned |
template<size_t N> | |
using | hwy::SignedFromSize = typename detail::TypeFromSize< N >::Signed |
template<size_t N> | |
using | hwy::FloatFromSize = typename detail::TypeFromSize< N >::Float |
Functions | |
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 T | hwy::ExponentMask () |
template<> | |
constexpr uint32_t | hwy::ExponentMask< uint32_t > () |
template<> | |
constexpr uint64_t | hwy::ExponentMask< uint64_t > () |
template<typename T > | |
constexpr T | hwy::MantissaMask () |
template<> | |
constexpr uint32_t | hwy::MantissaMask< uint32_t > () |
template<> | |
constexpr uint64_t | hwy::MantissaMask< uint64_t > () |
template<typename T > | |
constexpr T | hwy::MantissaEnd () |
template<> | |
constexpr float | hwy::MantissaEnd< float > () |
template<> | |
constexpr double | hwy::MantissaEnd< double > () |
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) |
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 |
Variables | |
static constexpr HWY_MAYBE_UNUSED size_t | hwy::kMaxVectorSize = 16 |
HWY_DLLEXPORT HWY_NORETURN void int | hwy::line |
HWY_DLLEXPORT HWY_NORETURN void int const char * | hwy::format |
#define HWY_ABORT | ( | format, | |
... | |||
) | ::hwy::Abort(__FILE__, __LINE__, format, ##__VA_ARGS__) |
#define HWY_ALIGN_MAX alignas(16) |
#define HWY_API static HWY_INLINE HWY_FLATTEN HWY_MAYBE_UNUSED |
#define HWY_ASSERT | ( | condition | ) |
#define HWY_ASSUME_ALIGNED | ( | ptr, | |
align | |||
) | (ptr) /* not supported */ |
#define HWY_ATTR_NO_MSAN |
#define HWY_CONCAT | ( | a, | |
b | |||
) | HWY_CONCAT_IMPL(a, b) |
#define HWY_CONCAT_IMPL | ( | a, | |
b | |||
) | a##b |
#define HWY_DASSERT | ( | condition | ) | HWY_ASSERT(condition) |
#define HWY_DIAGNOSTICS | ( | tokens | ) | HWY_PRAGMA(GCC diagnostic tokens) |
#define HWY_DIAGNOSTICS_OFF | ( | msc, | |
gcc | |||
) | HWY_DIAGNOSTICS(gcc) |
#define HWY_FENCE |
#define HWY_FLATTEN __attribute__((flatten)) |
#define HWY_FORMAT | ( | idx_fmt, | |
idx_arg | |||
) |
#define HWY_IF_FLOAT | ( | T | ) | hwy::EnableIf<hwy::IsFloat<T>()>* = nullptr |
#define HWY_IF_GE128 | ( | T, | |
N | |||
) | hwy::EnableIf<N * sizeof(T) >= 16>* = 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_GT128 | ( | T, | |
N | |||
) | hwy::EnableIf<(N * sizeof(T) > 16)>* = nullptr |
#define HWY_IF_LANE_SIZE | ( | T, | |
bytes | |||
) | hwy::EnableIf<sizeof(T) == (bytes)>* = nullptr |
#define HWY_IF_LE128 | ( | T, | |
N | |||
) | hwy::EnableIf<N * sizeof(T) <= 16>* = nullptr |
#define HWY_IF_LE32 | ( | T, | |
N | |||
) | hwy::EnableIf<N * sizeof(T) <= 4>* = nullptr |
#define HWY_IF_LE64 | ( | T, | |
N | |||
) | hwy::EnableIf<N * sizeof(T) <= 8>* = nullptr |
#define HWY_IF_NOT_FLOAT | ( | T | ) | hwy::EnableIf<!hwy::IsFloat<T>()>* = nullptr |
#define HWY_IF_NOT_LANE_SIZE | ( | T, | |
bytes | |||
) | hwy::EnableIf<sizeof(T) != (bytes)>* = nullptr |
#define HWY_IF_SIGNED | ( | T | ) | hwy::EnableIf<IsSigned<T>() && !IsFloat<T>()>* = nullptr |
#define HWY_IF_UNSIGNED | ( | T | ) | hwy::EnableIf<!IsSigned<T>()>* = nullptr |
#define HWY_INLINE inline __attribute__((always_inline)) |
#define HWY_IS_ASAN 0 |
#define HWY_IS_DEBUG_BUILD 1 |
#define HWY_IS_MSAN 0 |
#define HWY_IS_TSAN 0 |
#define HWY_LIKELY | ( | expr | ) | __builtin_expect(!!(expr), 1) |
#define HWY_MAX | ( | a, | |
b | |||
) | ((a) > (b) ? (a) : (b)) |
#define HWY_MAYBE_UNUSED __attribute__((unused)) |
#define HWY_MIN | ( | a, | |
b | |||
) | ((a) < (b) ? (a) : (b)) |
#define HWY_MUST_USE_RESULT __attribute__((warn_unused_result)) |
#define HWY_NATIVE_FLOAT16 0 |
#define HWY_NOINLINE __attribute__((noinline)) |
#define HWY_NORETURN __attribute__((noreturn)) |
#define HWY_POP_ATTRIBUTES |
#define HWY_PRAGMA | ( | tokens | ) | _Pragma(#tokens) |
#define HWY_PUSH_ATTRIBUTES | ( | targets_str | ) |
#define HWY_REP4 | ( | literal | ) | literal, literal, literal, literal |
#define HWY_RESTRICT __restrict__ |
#define HWY_STR | ( | macro | ) | HWY_STR_IMPL(macro) |
#define HWY_STR_IMPL | ( | macro | ) | #macro |
#define HWY_UNLIKELY | ( | expr | ) | __builtin_expect(!!(expr), 0) |