]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
And-identity folding rule.
authorJulian Seward <jseward@acm.org>
Sat, 6 Nov 2004 12:10:04 +0000 (12:10 +0000)
committerJulian Seward <jseward@acm.org>
Sat, 6 Nov 2004 12:10:04 +0000 (12:10 +0000)
git-svn-id: svn://svn.valgrind.org/vex/trunk@502

VEX/priv/ir/iropt.c

index 1e91a51d4bd2039c61ad16b0a4e15a0a81a41d89..01577e34ef8808e27dd50ffda752bb93b9f09b8e 100644 (file)
@@ -560,6 +560,13 @@ static IRExpr* fold_Expr ( IRExpr* e )
             e2 = e->Iex.Binop.arg1;
          } else
 
+         /* And32(x,0xFFFFFFFF) ==> x */
+         if (e->Iex.Binop.op == Iop_And32
+             && e->Iex.Binop.arg2->tag == Iex_Const
+             && e->Iex.Binop.arg2->Iex.Const.con->Ico.U32 == 0xFFFFFFFF) {
+            e2 = e->Iex.Binop.arg1;
+         } else
+
          /* Or32(0,x) ==> x */
          if (e->Iex.Binop.op == Iop_Or32
              && e->Iex.Binop.arg1->tag == Iex_Const