From: Julian Seward Date: Fri, 27 Feb 2015 12:51:22 +0000 (+0000) Subject: fold_Expr: add rules X-Git-Tag: svn/VALGRIND_3_11_0^2~88 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3690e33a205b9cd961dffe95f6ab331a7a080e7f;p=thirdparty%2Fvalgrind.git fold_Expr: add rules Xor8/16/32/64(0,t) ==> t Xor8/16/32/64(t,0) ==> t git-svn-id: svn://svn.valgrind.org/vex/trunk@3094 --- diff --git a/VEX/priv/ir_opt.c b/VEX/priv/ir_opt.c index ffd18f95be..f503bef181 100644 --- a/VEX/priv/ir_opt.c +++ b/VEX/priv/ir_opt.c @@ -2292,6 +2292,17 @@ static IRExpr* fold_Expr ( IRExpr** env, IRExpr* e ) // e2 = e->Iex.Binop.arg2; // break; //} + } else { + /* Xor8/16/32/64(0,t) ==> t */ + if (isZeroU(e->Iex.Binop.arg1)) { + e2 = e->Iex.Binop.arg2; + break; + } + /* Xor8/16/32/64(t,0) ==> t */ + if (isZeroU(e->Iex.Binop.arg2)) { + e2 = e->Iex.Binop.arg1; + break; + } } break;