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

Reply via email to