I tested my two patches independently and forgot to test together and one used a variable which I removed in the other. Anyways this patch changes the code to be correct and fixes the bootstrap issue.
Committed as obvious after building stage1. Thanks, Andrew Pinski ChangeLog: 2012-04-24 Andrew Pinski <apin...@cavium.com> * tree-ssa-forwprop.c (simplify_bitwise_binary): Don't directly use def1/def2.
Index: ChangeLog =================================================================== --- ChangeLog (revision 186756) +++ ChangeLog (working copy) @@ -1,3 +1,8 @@ +2012-04-24 Andrew Pinski <apin...@cavium.com> + + * tree-ssa-forwprop.c (simplify_bitwise_binary): + Don't directly use def1/def2. + 2012-04-24 Richard Guenther <rguent...@suse.de> PR tree-optimization/53098 Index: tree-ssa-forwprop.c =================================================================== --- tree-ssa-forwprop.c (revision 186755) +++ tree-ssa-forwprop.c (working copy) @@ -1913,10 +1913,10 @@ simplify_bitwise_binary (gimple_stmt_ite /* Simplify (A & B) OP0 (C & B) to (A OP0 C) & B. */ if (def1_code == def2_code && def1_code == BIT_AND_EXPR - && operand_equal_for_phi_arg_p (gimple_assign_rhs2 (def1), - gimple_assign_rhs2 (def2))) + && operand_equal_for_phi_arg_p (def1_arg2, + def2_arg2)) { - tree b = gimple_assign_rhs2 (def1); + tree b = def1_arg2; tree a = def1_arg1; tree c = def2_arg1; tree inner = fold_build2 (code, TREE_TYPE (arg2), a, c);