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.