Go to the documentation of this file.
17 #include "absl/base/internal/unaligned_access.h"
18 #include "absl/numeric/bits.h"
19 #include "absl/numeric/int128.h"
23 namespace hash_internal {
26 #if !defined(__aarch64__)
52 uint64_t duplicated_state = current_state;
66 current_state = (cs0 ^ cs1);
70 duplicated_state = (ds0 ^ ds1);
76 current_state = current_state ^ duplicated_state;
85 current_state =
Mix(
a ^ salt[1],
b ^ current_state);
101 }
else if (
len > 3) {
106 }
else if (
len > 0) {
static const uint8_t seed[20]
ABSL_NAMESPACE_BEGIN constexpr ABSL_MUST_USE_RESULT std::enable_if< std::is_unsigned< T >::value, T >::type rotl(T x, int s) noexcept
#define ABSL_NAMESPACE_END
constexpr uint64_t Uint128High64(uint128 v)
#define ABSL_NAMESPACE_BEGIN
constexpr uint64_t Uint128Low64(uint128 v)
static uint32_t UnalignedLoad32(const void *p)
unsigned __int64 uint64_t
static uint64_t Mix(uint64_t v0, uint64_t v1)
static char data[kDataSize]
uint64_t LowLevelHash(const void *data, size_t len, uint64_t seed, const uint64_t salt[])
static uint64_t UnalignedLoad64(const void *p)
grpc
Author(s):
autogenerated on Fri May 16 2025 02:59:17