https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96695
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Assignee|unassigned at gcc dot gnu.org |pinskia at gcc dot gnu.org Status|NEW |ASSIGNED --- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- We handle: bool f2(unsigned x, unsigned y) { return (x == 0) && (x > y); } via: /* x > y && x != XXX_MIN --> x > y x > y && x == XXX_MIN --> false . */ min_value is defined as: (match min_value INTEGER_CST (if (INTEGRAL_TYPE_P (type) && wi::eq_p (wi::to_wide (t), wi::min_value (type))))) I suspect we could add POINTER_TYPE_P there and it will work.