https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90838
--- Comment #5 from ktkachov at gcc dot gnu.org --- FWIW, there is another similar function in deepsjeng that computes a side-effect: int myctz2 (unsigned long long * const b) { unsigned long long lsb = (*b) & -(*b); *b ^= lsb; return table[(lsb * magic) >> 58]; } so we'd need to make sure that our solution handles multiple uses of lsb