https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95643
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |rguenth at gcc dot gnu.org Ever confirmed|0 |1 Last reconfirmed| |2020-06-12 Status|UNCONFIRMED |NEW Keywords| |easyhack --- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- Confirmed. value-numbering doesn't use the alternate assertion discovery code and thus for the partly simplified condition does not record the appropriate expressions. Likewise EVRP lacks simple forward-propagation during this assertion discovery (value-numbering would also need that) in register_edge_assert_for (where it tests for defs like a & b and a | b it needs to look for a simple boolean re-test/inversion as well). Should be easy to amend for this case.