On Fri, Apr 17, 2020 at 09:24:34AM +0200, Richard Biener wrote: > --- a/gcc/optabs.c > +++ b/gcc/optabs.c > @@ -1050,7 +1050,7 @@ expand_binop_directly (enum insn_code icode, > machine_mode mode, optab binoptab, > commutative_p = commutative_optab_p (binoptab); > if (commutative_p > && GET_MODE (xop0) != xmode0 && GET_MODE (xop1) != xmode1 > - && GET_MODE (xop0) == xmode1 && GET_MODE (xop1) == xmode1) > + && GET_MODE (xop0) == xmode1 && GET_MODE (xop1) == xmode0)
Do we need 4 comparisons for that? Wouldn't if (commutative_p && xmode0 != xmode1 && GET_MODE (xop0) == xmode1 && GET_MODE (xop1) == xmode0) std::swap (xop0, xop1); be more readable and shorter? Jakub