https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109401
--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #2) > Something like this: > (for op (somebinarops) > (simplify > (op:c (min:c @0 @1) (max:c @0 @1)) > (if (!FLOAT_TYPE_P(type)) Why? Commutative ops don't care which operand is first and which is second even when honoring NaNs or signed zeros.