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