https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88784

--- Comment #16 from Marc Glisse <glisse at gcc dot gnu.org> ---
(In reply to rguent...@suse.de from comment #15)
> It can matter because we might have gimplified the && to
> control flow.

Indeed. You want to look at the forwprop1 dump to see what gimple-match would
need to match (and does match on x86_64).

When X > Y && X != 0 is represented with control flow, in theory, VRP could
deduce a range [1,inf] for X from X>Y, but in practice it uses a symbolic range
[y_3(D) + 1, +INF] from which we fail to deduce X!=0. I think the new ranger
thing that doesn't try to do symbolic ranges would handle that better ;-)

Reply via email to