https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77283
--- Comment #14 from Richard Biener <rguenth at gcc dot gnu.org> --- And maybe PR77366 is too simplified. The following testcase is "fixed": void foo(unsigned int size, unsigned int *state) { unsigned int i; for(i = 0; i < size; i++) { if(state[i] & 1) state[i] ^= 1; } }