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

--- Comment #11 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Uroš Bizjak from comment #10)
> (In reply to Richard Biener from comment #4)
> > quoting rtl.def:
> > 
> > /* This is an ordered NE, ie !UNEQ, ie false for NaN.  */
> > DEF_RTL_EXPR(LTGT, "ltgt", "ee", RTX_COMM_COMPARE)
> 
> In gensupport.c, we have:
> 
>   {"ordered_comparison_operator", false, false, {EQ, NE,
>                                                LE, LT, GE, GT,
>                                                LEU, LTU, GEU, GTU}},
>   {"comparison_operator", false, false, {EQ, NE,
>                                        LE, LT, GE, GT,
>                                        LEU, LTU, GEU, GTU,
>                                        UNORDERED, ORDERED,
>                                        UNEQ, UNGE, UNGT,
>                                        UNLE, UNLT, LTGT}}
> 
> And based on the observation that LTGT = LT || GT, should LTGT be a member
> of ordered_comparison_operator?

@defun ordered_comparison_operator
This predicate matches any expression which performs an arithmetic
comparison in @var{mode} and whose expression code is valid for integer
modes; that is, the expression code will be one of @code{eq}, @code{ne},
@code{lt}, @code{ltu}, @code{le}, @code{leu}, @code{gt}, @code{gtu},
@code{ge}, @code{geu}.
@end defun

I don't think we use LTGT for integer modes, so the answer is no.  But
I argue ordered_comparison_operator is named confusingly then.

Reply via email to