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

--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
A few more things to optimize:
```
bool minusne(bool a, bool b)
{
  return (a - b) != 1;
}
bool ornot(bool a, bool b)
{
  return !a | b; // or a <= b
}

bool minusne0(bool a, bool b)
{
  return (a - b) != -1;
}
bool ornot0(bool a, bool b)
{
  return a | !b; // or b <= a
}


bool minuseq(bool a, bool b)
{
  return (a - b) == 1;
}
bool andnot(bool a, bool b)
{
  return a & !b; // or b < a
}

bool minuseq0(bool a, bool b)
{
  return (a - b) == -1;
}
bool andnot0(bool a, bool b)
{
  return !a & b; // or a < b
}
```
minusne{,0} should be optimized into ornot{,0}.
minuseq{,0} should be optimized into andnot{,0}.

Reply via email to