Skip to content

Commit

Permalink
minor fix
Browse files Browse the repository at this point in the history
  • Loading branch information
wangyi-fudan authored Feb 3, 2020
1 parent 7052caf commit 976fbf0
Showing 1 changed file with 9 additions and 9 deletions.
18 changes: 9 additions & 9 deletions wyhash.h
Original file line number Diff line number Diff line change
Expand Up @@ -46,23 +46,23 @@ static inline uint64_t _wyr4(const uint8_t *p) { unsigned v; memcpy(&v, p, 4);
#endif
static inline uint64_t _wyr3(const uint8_t *p, unsigned k) { return (((uint64_t)p[0])<<16)|(((uint64_t)p[k>>1])<<8)|p[k-1]; }
static inline uint64_t wyhash(const void* key, uint64_t len, uint64_t seed) {
#if defined(__GNUC__) || defined(__INTEL_COMPILER)
#define _like_(x) __builtin_expect(x,1)
#define _unlike_(x) __builtin_expect(x,0)
#else
#define _like_(x) (x)
#define _unlike_(x) (x)
#endif
#if defined(__GNUC__) || defined(__INTEL_COMPILER)
#define _like_(x) __builtin_expect(x,1)
#define _unlike_(x) __builtin_expect(x,0)
#else
#define _like_(x) (x)
#define _unlike_(x) (x)
#endif
const uint8_t *p=(const uint8_t*)key; uint64_t i=len;
label:
if(_unlike_(i<4)) return _like_(i)?_wymum(_wymum(_wyr3(p,i)^seed^_wyp0,seed^_wyp1),len^_wyp4):_wymum(_wymum(seed^_wyp0,seed^_wyp1),len^_wyp4);
if(_unlike_(i<4)) return _wymum(_wymum((_like_(i)?_wyr3(p,i):0)^seed^_wyp0,seed^_wyp1),len^_wyp4);
else if(_like_(i<=8)) return _wymum(_wymum(_wyr4(p)^seed^_wyp0,_wyr4(p+i-4)^seed^_wyp1),len^_wyp4);
else if(_like_(i<=16)) return _wymum(_wymum(_wyr8(p)^seed^_wyp0,_wyr8(p+i-8)^seed^_wyp1),len^_wyp4);
else if(_like_(i<=32)) return _wymum(_wymum(_wyr8(p)^seed^_wyp0,_wyr8(p+8)^seed^_wyp1)^_wymum(_wyr8(p+i-16)^seed^_wyp2,_wyr8(p+i-8)^seed^_wyp3),len^_wyp4);
else if(_like_(i<=64)) return _wymum(_wymum(_wyr8(p)^seed^_wyp0,_wyr8(p+8)^seed^_wyp1)^_wymum(_wyr8(p+16)^seed^_wyp2,_wyr8(p+24)^seed^_wyp3)
^_wymum(_wyr8(p+i-32)^seed^_wyp1,_wyr8(p+i-24)^seed^_wyp2)^_wymum(_wyr8(p+i-16)^seed^_wyp3,_wyr8(p+i-8)^seed^_wyp0),len^_wyp4);
uint64_t see1=seed, see2=seed, see3=seed;
for(; _like_(i>=64); i-=64,p+=64){
for(; i>=64; i-=64,p+=64){
seed=_wymum(_wyr8(p)^seed^_wyp0,_wyr8(p+8)^seed^_wyp1); see1=_wymum(_wyr8(p+16)^see1^_wyp2,_wyr8(p+24)^see1^_wyp3);
see2=_wymum(_wyr8(p+32)^see2^_wyp1,_wyr8(p+40)^see2^_wyp2); see3=_wymum(_wyr8(p+48)^see3^_wyp3,_wyr8(p+56)^see3^_wyp0);
}
Expand Down

0 comments on commit 976fbf0

Please sign in to comment.