https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119223
--- Comment #7 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Created attachment 60715 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=60715&action=edit testcase to show that the issue is `1<<n` vs `bool<<n` If WORKS is defined, then this loop can be vectorized and we can shift the bool. But if WORKS is not defined, t becomes 1 and we don't vectorizer the loop.