On Thu, Apr 24, 2014 at 11:54 PM, Richard Sandiford <rdsandif...@googlemail.com> wrote: > The asm comparison showed a problem with my r204593 change, which dropped > a "val.mask &" in the second hunk below. > > Seeing that the problem was in ccp made me look at the whole file again. > I noticed that we'd changed the VARYING mask value from -1 to 1, which > didn't look intentional. > > Tested on x86_64-linux-gnu. OK to install?
Ok. Thanks, Richard. > Thanks, > Richard > > > Index: gcc/tree-ssa-ccp.c > =================================================================== > --- gcc/tree-ssa-ccp.c 2014-04-23 19:13:20.488547331 +0100 > +++ gcc/tree-ssa-ccp.c 2014-04-23 19:30:07.025416946 +0100 > @@ -607,7 +607,7 @@ get_value_for_expr (tree expr, bool for_ > else > { > val.lattice_val = VARYING; > - val.mask = 1; > + val.mask = -1; > val.value = NULL_TREE; > } > return val; > @@ -1848,7 +1848,7 @@ evaluate_stmt (gimple stmt) > if (nonzero_bits == 0) > val.mask = 0; > else > - val.mask = extend_mask (nonzero_bits); > + val.mask = val.mask & extend_mask (nonzero_bits); > } > } > }