Skip to content

Commit

Permalink
Use unsigned long long for the uint64_t type
Browse files Browse the repository at this point in the history
Signed-off-by: Jens Axboe <[email protected]>
  • Loading branch information
axboe committed Jan 21, 2013
1 parent 4ee47af commit a240e44
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions lib/hweight.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,11 @@ unsigned int hweight64(uint64_t w)
#if BITS_PER_LONG == 32
return hweight32((unsigned int)(w >> 32)) + hweight32((unsigned int)w);
#else
uint64_t res = w - ((w >> 1) & 0x5555555555555555ul);
res = (res & 0x3333333333333333ul) + ((res >> 2) & 0x3333333333333333ul);
res = (res + (res >> 4)) & 0x0F0F0F0F0F0F0F0Ful;
uint64_t res = w - ((w >> 1) & 0x5555555555555555ULL);
res = (res & 0x3333333333333333ULL) + ((res >> 2) & 0x3333333333333333ULL);
res = (res + (res >> 4)) & 0x0F0F0F0F0F0F0F0FULL;
res = res + (res >> 8);
res = res + (res >> 16);
return (res + (res >> 32)) & 0x00000000000000FFul;
return (res + (res >> 32)) & 0x00000000000000FFULL;
#endif
}

0 comments on commit a240e44

Please sign in to comment.