https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105253
--- Comment #8 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Reduced to just -O2: int foo (unsigned long long *p) { int i, cnt = 0; unsigned long long elem; for (i = 0; i < (256 / 64); i++) { elem = p[i]; for (; elem; cnt++) elem &= elem - 1; } return cnt; } Started with r12-8041-g973a2ce71f8dab559fbbfc34b59e39e047df74a6 Wonder how that affects the testcase...