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.