Grok 10.0.5
|
#include <stddef.h>
#include <stdint.h>
#include "hwy/detect_compiler_arch.h"
#include "hwy/highway_export.h"
Go to the source code of this file.
Namespaces | |
namespace | hwy |
namespace | hwy::detail |
Macros | |
#define | HWY_STR_IMPL(macro) |
#define | HWY_STR(macro) |
#define | HWY_RESTRICT __restrict__ |
#define | HWY_INLINE inline |
#define | HWY_NOINLINE __attribute__((noinline)) |
#define | HWY_FLATTEN __attribute__((flatten)) |
#define | HWY_NORETURN __attribute__((noreturn)) |
#define | HWY_LIKELY(expr) |
#define | HWY_UNLIKELY(expr) |
#define | HWY_PRAGMA(tokens) |
#define | HWY_DIAGNOSTICS(tokens) |
#define | HWY_DIAGNOSTICS_OFF(msc, 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) |
#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) |
#define | HWY_CONCAT(a, b) |
#define | HWY_MIN(a, b) |
#define | HWY_MAX(a, b) |
#define | HWY_UNROLL(factor) |
#define | HWY_DEFAULT_UNROLL |
#define | HWY_ASSUME(expr) |
#define | HWY_FENCE |
#define | HWY_REP4(literal) |
#define | HWY_ABORT(format, ...) |
#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) |
#define | HWY_ALIGN_MAX alignas(16) |
#define | HWY_IF_LE128(T, N) |
#define | HWY_IF_LE64(T, N) |
#define | HWY_IF_LE32(T, N) |
#define | HWY_IF_GE32(T, N) |
#define | HWY_IF_GE64(T, N) |
#define | HWY_IF_GE128(T, N) |
#define | HWY_IF_GT128(T, N) |
#define | HWY_IF_UNSIGNED(T) |
#define | HWY_IF_SIGNED(T) |
#define | HWY_IF_FLOAT(T) |
#define | HWY_IF_NOT_FLOAT(T) |
#define | HWY_IF_LANE_SIZE(T, bytes) |
#define | HWY_IF_NOT_LANE_SIZE(T, bytes) |
#define | HWY_IF_LANE_SIZE_ONE_OF(T, bit_array) |
#define | HWY_IF_LANES_PER_BLOCK(T, N, LANES) |
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 |
using | hwy::UnsignedTag = SizeTag<0> |
using | hwy::SignedTag = SizeTag<0x100> |
using | hwy::FloatTag = SizeTag<0x200> |
using | hwy::NonFloatTag = SizeTag<0x400> |
Functions | |
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 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) |
static HWY_MAYBE_UNUSED bool | hwy::operator== (const K64V64 &a, const K64V64 &b) |
static HWY_MAYBE_UNUSED bool | hwy::operator< (const K32V32 &a, const K32V32 &b) |
static HWY_MAYBE_UNUSED bool | hwy::operator> (const K32V32 &a, const K32V32 &b) |
static HWY_MAYBE_UNUSED bool | hwy::operator== (const K32V32 &a, const K32V32 &b) |
template<typename T , typename U > | |
HWY_API constexpr bool | hwy::IsSame () |
template<typename T , class R = detail::Relations<T>> | |
constexpr auto | hwy::TypeTag () -> hwy::SizeTag<((R::is_signed+R::is_float)<< 8)> |
template<typename T , class R = detail::Relations<T>> | |
constexpr auto | hwy::IsFloatTag () -> hwy::SizeTag<(R::is_float ? 0x200 :0x400)> |
template<typename T > | |
HWY_API constexpr bool | hwy::IsFloat () |
template<typename T > | |
HWY_API constexpr bool | hwy::IsSigned () |
template<> | |
constexpr bool | hwy::IsSigned< float16_t > () |
template<> | |
constexpr bool | hwy::IsSigned< bfloat16_t > () |
template<typename T > | |
HWY_API constexpr T | hwy::LimitsMax () |
template<typename T > | |
HWY_API constexpr T | hwy::LimitsMin () |
template<typename T > | |
HWY_API constexpr T | hwy::LowestValue () |
template<> | |
constexpr float | hwy::LowestValue< float > () |
template<> | |
constexpr double | hwy::LowestValue< double > () |
template<typename T > | |
HWY_API constexpr T | hwy::HighestValue () |
template<> | |
constexpr float | hwy::HighestValue< float > () |
template<> | |
constexpr double | hwy::HighestValue< double > () |
template<typename T > | |
HWY_API constexpr T | hwy::Epsilon () |
template<> | |
constexpr float | hwy::Epsilon< float > () |
template<> | |
constexpr double | hwy::Epsilon< 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) |
template<typename T > | |
HWY_INLINE constexpr T | hwy::AddWithWraparound (hwy::FloatTag, T t, size_t n) |
template<typename T > | |
HWY_INLINE constexpr T | hwy::AddWithWraparound (hwy::NonFloatTag, T t, size_t n) |
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<typename From , typename To > | |
HWY_API void | hwy::CopySameSize (const From *HWY_RESTRICT from, To *HWY_RESTRICT 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 |
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, | |
... ) |
Referenced by hwy::Image3< ComponentType >::Image3(), hwy::HWY_NAMESPACE::MaskForDist(), hwy::InputStats< T >::operator==(), hwy::HWY_NAMESPACE::Run(), hwy::HWY_NAMESPACE::VerifySort(), hwy::Image3< ComponentType >::VoidPlaneRow(), hwy::ImageBase::VoidRow(), hwy::HWY_NAMESPACE::ForDemoteVectors< Test, kPow2 >::~ForDemoteVectors(), hwy::HWY_NAMESPACE::ForExtendableVectors< Test, kPow2 >::~ForExtendableVectors(), hwy::HWY_NAMESPACE::ForGEVectors< kMinBits, Test >::~ForGEVectors(), hwy::HWY_NAMESPACE::ForHalfVectors< Test, kPow2 >::~ForHalfVectors(), hwy::HWY_NAMESPACE::ForPartialVectors< Test >::~ForPartialVectors(), hwy::HWY_NAMESPACE::ForPromoteVectors< Test, kPow2 >::~ForPromoteVectors(), and hwy::HWY_NAMESPACE::ForShrinkableVectors< Test, kPow2 >::~ForShrinkableVectors().
#define HWY_ALIGN_MAX alignas(16) |
#define HWY_API static HWY_INLINE HWY_FLATTEN HWY_MAYBE_UNUSED |
#define HWY_ASSERT | ( | condition | ) |
Referenced by hwy::HWY_NAMESPACE::Reverse8(), and hwy::HWY_NAMESPACE::VerifySort().
#define HWY_ASSUME | ( | expr | ) |
#define HWY_ASSUME_ALIGNED | ( | ptr, | |
align ) |
Referenced by hwy::ImageBase::bytes(), hwy::ImageBase::bytes(), hwy::Image3< ComponentType >::VoidPlaneRow(), and hwy::ImageBase::VoidRow().
#define HWY_ATTR_NO_MSAN |
#define HWY_CONCAT | ( | a, | |
b ) |
#define HWY_DASSERT | ( | condition | ) |
Referenced by hwy::HWY_NAMESPACE::Compress(), hwy::HWY_NAMESPACE::CompressNot(), hwy::HWY_NAMESPACE::Dot::Compute(), hwy::HWY_NAMESPACE::Dot::Compute(), hwy::HWY_NAMESPACE::Copy(), hwy::HWY_NAMESPACE::CopyIf(), hwy::HWY_NAMESPACE::DemoteTo(), hwy::HWY_NAMESPACE::ExtractLane(), hwy::HWY_NAMESPACE::ExtractLane(), hwy::HWY_NAMESPACE::ExtractLane(), hwy::HWY_NAMESPACE::Fill(), hwy::HWY_NAMESPACE::Find(), hwy::HWY_NAMESPACE::FindIf(), hwy::HWY_NAMESPACE::Generate(), hwy::HWY_NAMESPACE::detail::IdxFromBits(), hwy::HWY_NAMESPACE::detail::IdxFromBits(), hwy::HWY_NAMESPACE::detail::IdxFromBits(), hwy::HWY_NAMESPACE::detail::IdxFromNotBits(), hwy::HWY_NAMESPACE::detail::IdxFromNotBits(), hwy::HWY_NAMESPACE::detail::IdxFromNotBits(), hwy::HWY_NAMESPACE::IndicesFromVec(), hwy::HWY_NAMESPACE::IndicesFromVec(), hwy::HWY_NAMESPACE::IndicesFromVec(), hwy::HWY_NAMESPACE::IndicesFromVec(), hwy::HWY_NAMESPACE::IndicesFromVec(), hwy::HWY_NAMESPACE::InsertLane(), hwy::HWY_NAMESPACE::InsertLane(), hwy::HWY_NAMESPACE::InsertLane(), hwy::Mirror(), hwy::HWY_NAMESPACE::Replace(), hwy::HWY_NAMESPACE::ReplaceIf(), hwy::HWY_NAMESPACE::Transform(), hwy::HWY_NAMESPACE::Transform1(), and hwy::HWY_NAMESPACE::Transform2().
#define HWY_DEFAULT_UNROLL |
#define HWY_DIAGNOSTICS | ( | tokens | ) |
Referenced by hwy::HWY_NAMESPACE::DemoteTo().
#define HWY_DIAGNOSTICS_OFF | ( | msc, | |
gcc ) |
Referenced by hwy::HWY_NAMESPACE::DemoteTo().
#define HWY_FENCE |
#define HWY_FLATTEN __attribute__((flatten)) |
#define HWY_FORMAT | ( | idx_fmt, | |
idx_arg ) |
#define HWY_IF_FLOAT | ( | T | ) |
#define HWY_IF_GE128 | ( | T, | |
N ) |
#define HWY_IF_GE32 | ( | T, | |
N ) |
#define HWY_IF_GE64 | ( | T, | |
N ) |
#define HWY_IF_GT128 | ( | T, | |
N ) |
#define HWY_IF_LANE_SIZE | ( | T, | |
bytes ) |
#define HWY_IF_LANE_SIZE_ONE_OF | ( | T, | |
bit_array ) |
#define HWY_IF_LANES_PER_BLOCK | ( | T, | |
N, | |||
LANES ) |
#define HWY_IF_LE128 | ( | T, | |
N ) |
#define HWY_IF_LE32 | ( | T, | |
N ) |
#define HWY_IF_LE64 | ( | T, | |
N ) |
#define HWY_IF_NOT_FLOAT | ( | T | ) |
#define HWY_IF_NOT_LANE_SIZE | ( | T, | |
bytes ) |
#define HWY_IF_SIGNED | ( | T | ) |
#define HWY_IF_UNSIGNED | ( | T | ) |
#define HWY_INLINE 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 | ) |
#define HWY_MAX | ( | a, | |
b ) |
Referenced by hwy::HWY_NAMESPACE::AdjustedReps(), hwy::HWY_NAMESPACE::AssertMaskEqual(), hwy::SortConstants::BufNum(), hwy::HWY_NAMESPACE::CompressStore(), hwy::detail::ComputeUlpDelta(), hwy::HWY_NAMESPACE::DemoteTo(), hwy::HWY_NAMESPACE::DemoteTo(), hwy::HWY_NAMESPACE::detail::Max(), hwy::HWY_NAMESPACE::detail::Max(), hwy::HWY_NAMESPACE::Max(), hwy::HWY_NAMESPACE::ReorderDemote2To(), hwy::HWY_NAMESPACE::SaturatedAdd(), hwy::HWY_NAMESPACE::SaturatedAdd(), hwy::HWY_NAMESPACE::SaturatedAdd(), hwy::HWY_NAMESPACE::SaturatedAdd(), hwy::HWY_NAMESPACE::SaturatedAdd(), hwy::HWY_NAMESPACE::SaturatedSub(), hwy::HWY_NAMESPACE::SaturatedSub(), hwy::HWY_NAMESPACE::SaturatedSub(), hwy::HWY_NAMESPACE::SaturatedSub(), hwy::HWY_NAMESPACE::SaturatedSub(), and hwy::HWY_NAMESPACE::TableLookupBytes().
#define HWY_MAYBE_UNUSED __attribute__((unused)) |
#define HWY_MIN | ( | a, | |
b ) |
Referenced by hwy::HWY_NAMESPACE::AdjustedLog2Reps(), hwy::SortConstants::BaseCaseNum(), hwy::HWY_NAMESPACE::CompressBitsStore(), hwy::detail::ComputeUlpDelta(), hwy::HWY_NAMESPACE::DemoteTo(), hwy::HWY_NAMESPACE::DemoteTo(), hwy::HWY_NAMESPACE::DemoteTo(), hwy::HWY_NAMESPACE::Lanes(), hwy::HWY_NAMESPACE::detail::LanesPerBlock(), hwy::HWY_NAMESPACE::detail::LanesPerBlock(), hwy::HWY_NAMESPACE::detail::Min(), hwy::HWY_NAMESPACE::detail::Min(), hwy::HWY_NAMESPACE::Min(), hwy::HWY_NAMESPACE::MLenFromD(), hwy::HWY_NAMESPACE::ReorderDemote2To(), hwy::HWY_NAMESPACE::RotateRight(), hwy::HWY_NAMESPACE::RotateRight(), hwy::HWY_NAMESPACE::RotateRight(), hwy::HWY_NAMESPACE::RotateRight(), hwy::HWY_NAMESPACE::SaturatedAdd(), hwy::HWY_NAMESPACE::SaturatedAdd(), hwy::HWY_NAMESPACE::SaturatedAdd(), hwy::HWY_NAMESPACE::SaturatedAdd(), hwy::HWY_NAMESPACE::SaturatedAdd(), hwy::HWY_NAMESPACE::SaturatedSub(), hwy::HWY_NAMESPACE::SaturatedSub(), hwy::HWY_NAMESPACE::SaturatedSub(), hwy::HWY_NAMESPACE::SaturatedSub(), and hwy::HWY_NAMESPACE::SaturatedSub().
#define HWY_MUST_USE_RESULT __attribute__((warn_unused_result)) |
#define HWY_NOINLINE __attribute__((noinline)) |
#define HWY_NORETURN __attribute__((noreturn)) |
#define HWY_POP_ATTRIBUTES |
#define HWY_PRAGMA | ( | tokens | ) |
#define HWY_PUSH_ATTRIBUTES | ( | targets_str | ) |
#define HWY_REP4 | ( | literal | ) |
#define HWY_RESTRICT __restrict__ |
Referenced by hwy::ImageBase::bytes(), hwy::ImageBase::bytes(), hwy::HWY_NAMESPACE::CombineShiftRightBytes(), hwy::HWY_NAMESPACE::CompressBitsStore(), hwy::HWY_NAMESPACE::CompressStore(), hwy::HWY_NAMESPACE::CopyIf(), hwy::HWY_NAMESPACE::detail::EmuCompressStore(), hwy::HWY_NAMESPACE::detail::EmuCompressStore(), hwy::HWY_NAMESPACE::Load(), hwy::HWY_NAMESPACE::Store(), hwy::HWY_NAMESPACE::Store(), hwy::HWY_NAMESPACE::TableLookupBytes(), and hwy::Image3< ComponentType >::VoidPlaneRow().
#define HWY_STR | ( | macro | ) |
#define HWY_STR_IMPL | ( | macro | ) |
#define HWY_UNLIKELY | ( | expr | ) |
Referenced by hwy::HWY_NAMESPACE::Dot::Compute(), hwy::HWY_NAMESPACE::Dot::Compute(), hwy::HWY_NAMESPACE::Copy(), hwy::HWY_NAMESPACE::CopyIf(), hwy::HWY_NAMESPACE::Fill(), hwy::HWY_NAMESPACE::Generate(), hwy::HWY_NAMESPACE::Replace(), hwy::HWY_NAMESPACE::ReplaceIf(), hwy::HWY_NAMESPACE::Sort(), hwy::HWY_NAMESPACE::Transform(), hwy::HWY_NAMESPACE::Transform1(), and hwy::HWY_NAMESPACE::Transform2().
#define HWY_UNROLL | ( | factor | ) |