https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122207
--- Comment #2 from Robin Dapp <rdapp at gcc dot gnu.org> --- I believe the issue is that we're trying to simplify the niter assumption of bits >> 1 != 0 via simplify_using_initial_conditions. Without the ch pass we use bits != 0 which exactly matches "if (bits)". But bits >> 1 != 0 is also true if bits != 0 is true so we can call simplify_using_initial_conditions with the unshifted bits. I'm testing a patch.
