https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93781
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |missed-optimization Status|UNCONFIRMED |NEW Last reconfirmed| |2020-02-17 Ever confirmed|0 |1 Severity|normal |enhancement --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Adding assert for C00000400_5 from C00000400_5 < 0 Adding assert for _1 from _1 + 2147483648 <= 2147483647 But _1 is defined as: _1 = arg_4(D) + 4294967293; and arg_4 is used in the BB were we would have added the above asserts. The second assert comes from: /* Add asserts for NAME cmp CST and NAME being defined as NAME = (int) NAME2. */ We need one more for NAME cmp CST, and NAME = (int)NAME2 and NAME2 = NAME3 + CST. The question becomes how recusive/adding extra cases to do we want to add to register_edge_assert_for_2.