From 3690e33a205b9cd961dffe95f6ab331a7a080e7f Mon Sep 17 00:00:00 2001 From: Julian Seward Date: Fri, 27 Feb 2015 12:51:22 +0000 Subject: [PATCH] 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 --- VEX/priv/ir_opt.c | 11 +++++++++++ 1 file changed, 11 insertions(+) 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; -- 2.47.2