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