https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116766
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> --- Created attachment 59144 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=59144&action=edit hack This works for the special case of >> 1; something more general and nicer written could work. CHREC_LEFT might not need to be a multiple I think and thus not constant. EXACT_DIV_EXPR could be allowed directly in a CHREC_RIGHT, even if we can't constant-fold it, so I think working towards that would be better and instead handle EXACT_DIV_EXPR in SCEV.