17 const uint16_t* p =
reinterpret_cast<const uint16_t*
>(ptr);
27 __m128i
x = _mm_loadu_si128(
reinterpret_cast<const __m128i*
>(p));
28 return _mm_cvtsi128_si64(_mm_packus_epi16(
x,
x));
29#elif defined(__ARM_NEON__)
31 memcpy(&
x, p,
sizeof(
x));
32 return vget_lane_u64(vreinterpret_u64_u8(vmovn_u16(
x)), 0);
34 return (uint64_t{p[0]}) | (uint64_t{p[1]} << 8) | (uint64_t{p[2]} << 16) |
35 (uint64_t{p[3]} << 24) | (uint64_t{p[4]} << 32) |
36 (uint64_t{p[5]} << 40) | (uint64_t{p[6]} << 48) |
37 (uint64_t{p[7]} << 56);
42 const uint16_t* p =
reinterpret_cast<const uint16_t*
>(ptr);
48 __m128i
x = _mm_loadu_si64(
reinterpret_cast<const __m128i*
>(p));
49 return _mm_cvtsi128_si64(_mm_packus_epi16(
x,
x));
50#elif defined(__ARM_NEON__)
52 memcpy(&
x, p,
sizeof(
x));
53 int16x8_t x_wide = vcombine_u64(
x,
x);
54 return vget_lane_u32(vreinterpret_u32_u8(vmovn_u16(x_wide)), 0);
56 return (uint64_t{p[0]}) | (uint64_t{p[1]} << 8) | (uint64_t{p[2]} << 16) |
57 (uint64_t{p[3]} << 24);
62 const uint16_t* p =
reinterpret_cast<const uint16_t*
>(ptr);
66 return (uint64_t{p[0]} << 56) | (uint64_t{p[k >> 1]} << 32) | p[k - 1];
73 return rapidhash<ConvertTo8BitHashReader>(
74 reinterpret_cast<const uint8_t*
>(chars), length, seed);
V8_EXPORT_PRIVATE uint64_t HashConvertingTo8Bit(const uint16_t *chars, uint32_t length, uint64_t seed)
#define DCHECK_LE(v1, v2)
static constexpr unsigned kExpansionFactor
static V8_INLINE uint64_t Read64(const uint8_t *ptr)
static V8_INLINE uint64_t Read32(const uint8_t *ptr)
static constexpr unsigned kCompressionFactor
static V8_INLINE uint64_t ReadSmall(const uint8_t *ptr, size_t k)