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

--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Note the main reason why this does not optimize down to `i <= j` without phiopt
on the trunk because of a few different reasons:
1) changing the return type to _Bool (or bool) allows us to get:
```
  _1 = i_2(D) < j_3(D);
  _4 = i_2(D) == j_3(D);
  _5 = _1 | _4;
```
2) Since that is not until phiopt4, there is no reassoc pass which does the
combining right now. We do handle integers just fine in match right now
(r14-2887-gac0e0966ebf08c and r14-2886-g0258b73680e21f). Adding real types to
match is on the plans to do too. (note also r14-1597-g64d90d06d2db43 was needed
to get the above IR).

Note this is all at `-O2 -ffast-math` so trapping and NaNs are not an issue.

Reply via email to