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

--- Comment #4 from Drea Pinski <pinskia at gcc dot gnu.org> ---
Here is another simplified testcase:
```
void dead (int);

void f (int a, int b)
{
  int d = a - b;
  if (d != 0) // `a - b != 0` -> `a != b`
    if (a == b)
      dead (d);
  return;
}
```

For some reason:
```
  if (!lhs.contains_zero_p ())
    return VREL_NE;
```

Oh because there is this check:
r.singleton_p ()
in register_outgoing_edges 

For the non-zero case, this is not a singleton.  Should we remove that check
too?

Reply via email to