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

--- Comment #4 from Andrew Macleod <amacleod at redhat dot com> ---
Ranger actually appears to handle both cases the same.  VRP1 gets it whilst
ranger does not.  I believe this to be because we are match and simplifying 

  _1 = ~c_5(D);
  _2 = _1 & s_4(D);

with c_5 == s_4... but at this point, the simplification code doesn't
understand the relation oracle, so I beleive it to be missing the fact that _2
will evaluate to 0 because it doesnt see the equivalency. VRP1 gets it because
its in intergrated in the legacy range that passed in as an equivset.

I will shortly get to some equivalency processing during simplificatoin as a
part of trying to remove VRP1.  We should then pick this up with in EVRP.

Reply via email to