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?