bit0
mask = constish_time_non_zero(bit0(b)); \
value = bit0(b) + bitn(1, b);
value = bit0(b1) + bitn(1, b1) + bitn(2, b1);
value = bitn(6, b1) + bitn(7, b1) + bit0(b2);
value -= bitn(7, b2) + bit0(b3) + bitn(1, b3);
out_byte |= bit0(s->c[i + j]) << j;
bitmask_range(uint64_t v, uint64_t bit0, uint64_t bitN)
if (bit0 == 0 && bitN == BITS_IN(v))
return (v & (((1ULL << (bitN - bit0)) - 1ULL) << bit0));
popcount_bytes(uint64_t *addr, uint32_t bit0, uint32_t bitN)
uint32_t res = bitN - bit0;
if ((bit0 % BITS_IN(*addr)) != 0) {
bound = MIN(bitN, roundup2(bit0, BITS_IN(*addr)));
count += __bitcount64(bitmask_range(*addr, bit0, bound));
res -= (bound - bit0);