efroach76.bsky.social
@efroach76.bsky.social
Finding an isolated 1-bit can be done in 4 ops even without andnot:
shr1 = x >> 1
t = x ^ shr1
# bit is different from left neighbor. Remains to check it is 1 and right neighbor is 0.
e = t & (t - shr1)
January 12, 2025 at 10:34 AM
Sorry, wouldn't know anything, I'd be interested too...
December 31, 2024 at 10:30 AM
As Harold mentions, Prefix-Or is just v | -v. Segment-scan-or can also be simplified, for example uint64_t s = (v | m) >> 1; return s ^ (s - v) (4 instructions instead of 7).
December 30, 2024 at 10:41 AM