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?

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);
            }
        }
     }

Reply via email to