https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68294
--- Comment #1 from Marc Glisse <glisse at gcc dot gnu.org> --- Please always include a compilable testcase so everyone doesn't have to reinvent one from your explanations. Gcc knows that u|v is not 0 (from VRP), but does not take advantage of that information in this case.