https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123456
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Note the other reason why the `redundant control-flow checks` happens is because we don't change `1 << l == 1` into forwprop4 which is after vrp2.
