https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55157
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |missed-optimization
Status|UNCONFIRMED |NEW
Last reconfirmed| |2016-07-10
Summary|Missing VRP |Missed VRP with != 0 and
| |multiply
Ever confirmed|0 |1
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
The problem here is that VRP asserts !=0 after the branch (which is correct)
but it should be able to assert >= 16 if it looked back to see the definition
was created by a (unsigned) multiply (of power of two only due to wrapping
around) or a shift.