Lines Matching refs:__len
50 inline _Size operator()(const void* __key, _Size __len)
57 __murmur2_or_cityhash<_Size, 32>::operator()(const void* __key, _Size __len)
61 _Size __h = __len;
63 for (; __len >= 4; __data += 4, __len -= 4)
72 switch (__len)
93 …inline _Size operator()(const void* __key, _Size __len) _LIBCPP_DISABLE_UBSAN_UNSIGNED_INTEGER_CH…
126 static _Size __hash_len_0_to_16(const char* __s, _Size __len)
129 if (__len > 8) {
131 const _Size __b = __loadword<_Size>(__s + __len - 8);
132 return __hash_len_16(__a, __rotate_by_at_least_1(__b + __len, __len)) ^ __b;
134 if (__len >= 4) {
136 const uint32_t __b = __loadword<uint32_t>(__s + __len - 4);
137 return __hash_len_16(__len + (__a << 3), __b);
139 if (__len > 0) {
141 const unsigned char __b = static_cast<unsigned char>(__s[__len >> 1]);
142 const unsigned char __c = static_cast<unsigned char>(__s[__len - 1]);
145 const uint32_t __z = __len + (static_cast<uint32_t>(__c) << 2);
151 static _Size __hash_len_17_to_32(const char *__s, _Size __len)
156 const _Size __c = __loadword<_Size>(__s + __len - 8) * __k2;
157 const _Size __d = __loadword<_Size>(__s + __len - 16) * __k0;
159 __a + __rotate(__b ^ __k3, 20) - __c + __len);
191 static _Size __hash_len_33_to_64(const char *__s, size_t __len)
196 (__len + __loadword<_Size>(__s + __len - 16)) * __k0;
204 __a = __loadword<_Size>(__s + 16) + __loadword<_Size>(__s + __len - 32);
205 __z += __loadword<_Size>(__s + __len - 8);
208 __a += __loadword<_Size>(__s + __len - 24);
210 __a += __loadword<_Size>(__s + __len - 16);
221 __murmur2_or_cityhash<_Size, 64>::operator()(const void* __key, _Size __len)
224 if (__len <= 32) {
225 if (__len <= 16) {
226 return __hash_len_0_to_16(__s, __len);
228 return __hash_len_17_to_32(__s, __len);
230 } else if (__len <= 64) {
231 return __hash_len_33_to_64(__s, __len);
236 _Size __x = __loadword<_Size>(__s + __len - 40);
237 _Size __y = __loadword<_Size>(__s + __len - 16) +
238 __loadword<_Size>(__s + __len - 56);
239 _Size __z = __hash_len_16(__loadword<_Size>(__s + __len - 48) + __len,
240 __loadword<_Size>(__s + __len - 24));
241 pair<_Size, _Size> __v = __weak_hash_len_32_with_seeds(__s + __len - 64, __len, __z);
242 pair<_Size, _Size> __w = __weak_hash_len_32_with_seeds(__s + __len - 32, __y + __k1, __x);
246 __len = (__len - 1) & ~static_cast<_Size>(63);
258 __len -= 64;
259 } while (__len != 0);