From: Julian Seward Date: Sat, 6 Nov 2004 12:10:04 +0000 (+0000) Subject: And-identity folding rule. X-Git-Tag: svn/VALGRIND_3_0_1^2~832 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a669c9c9e296778b25f6387baae41e3d7c14cc01;p=thirdparty%2Fvalgrind.git And-identity folding rule. git-svn-id: svn://svn.valgrind.org/vex/trunk@502 --- diff --git a/VEX/priv/ir/iropt.c b/VEX/priv/ir/iropt.c index 1e91a51d4b..01577e34ef 100644 --- a/VEX/priv/ir/iropt.c +++ b/VEX/priv/ir/iropt.c @@ -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