This removes dispatching to fold_binary from fold_gimple_assign with GIMPLE_BINARY_RHS. As usual tested that it doesn't trigger anymore on a bootstrap & regtest on x86_64-unknown-linux-gnu.
Bootstrapped and tested on x86_64-unknown-linux-gnu, applied. Richard. 2015-07-31 Richard Biener <rguent...@suse.de> * gimple-fold.c (fold_gimple_assign): Remove folding of GIMPLE_BINARY_RHS. Index: gcc/gimple-fold.c =================================================================== --- gcc/gimple-fold.c (revision 226406) +++ gcc/gimple-fold.c (working copy) @@ -413,20 +413,6 @@ fold_gimple_assign (gimple_stmt_iterator break; case GIMPLE_BINARY_RHS: - if (TREE_CODE_CLASS (subcode) != tcc_comparison) - { - result = fold_binary_loc (loc, subcode, - TREE_TYPE (gimple_assign_lhs (stmt)), - gimple_assign_rhs1 (stmt), - gimple_assign_rhs2 (stmt)); - - if (result) - { - STRIP_USELESS_TYPE_CONVERSION (result); - if (valid_gimple_rhs_p (result)) - return result; - } - } break; case GIMPLE_TERNARY_RHS: