On Wed, Jul 29, 2015 at 09:44:36AM +0200, Richard Biener wrote:
> @@ -3547,6 +3566,27 @@ fold_stmt_1 (gimple_stmt_iterator *gsi,
>             && maybe_canonicalize_mem_ref_addr (lhs))
>           changed = true;
>       }
> +      else
> +     {
> +       /* Canonicalize operand order.  */
> +       enum tree_code code = gimple_assign_rhs_code (stmt);
> +       if (TREE_CODE_CLASS (code) == tcc_comparison
> +           || commutative_tree_code (code)
> +           || commutative_ternary_tree_code (code))
> +         {
> +           tree rhs1 = gimple_assign_rhs1 (stmt);
> +           tree rhs2 = gimple_assign_rhs2 (stmt);
> +           if (tree_swap_operands_p (rhs1, rhs2, false))
> +             {
> +               gimple_assign_set_rhs1 (stmt, rhs2);
> +               gimple_assign_set_rhs2 (stmt, rhs1);
> +               if (TREE_CODE_CLASS (code) == tcc_comparison)

Is the second check for tcc_comparison needed?  We checked for that a few
lines above.

> +                 gimple_assign_set_rhs_code (stmt,
> +                                             swap_tree_comparison (code));
> +               changed = true;

        Marek

Reply via email to