From: Julian Seward Date: Tue, 16 Jan 2007 22:02:35 +0000 (+0000) Subject: Merge r1728 (Constant fold XorV128(t,t) -> 0.) X-Git-Tag: svn/VALGRIND_3_2_3^2~13 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=712a3eee6cc1b65356ecc2b13c05992ca0fa1554;p=thirdparty%2Fvalgrind.git Merge r1728 (Constant fold XorV128(t,t) -> 0.) git-svn-id: svn://svn.valgrind.org/vex/branches/VEX_3_2_BRANCH@1729 --- diff --git a/VEX/priv/ir/iropt.c b/VEX/priv/ir/iropt.c index 419fc4a957..d579d0852e 100644 --- a/VEX/priv/ir/iropt.c +++ b/VEX/priv/ir/iropt.c @@ -894,6 +894,7 @@ static IRExpr* mkZeroForXor ( IROp op ) case Iop_Xor16: return IRExpr_Const(IRConst_U16(0)); case Iop_Xor32: return IRExpr_Const(IRConst_U32(0)); case Iop_Xor64: return IRExpr_Const(IRConst_U64(0)); + case Iop_XorV128: return IRExpr_Const(IRConst_V128(0)); default: vpanic("mkZeroForXor: bad primop"); } } @@ -1486,11 +1487,12 @@ static IRExpr* fold_Expr ( IRExpr* e ) e2 = e->Iex.Binop.arg1; } - /* Xor8/16/32/64(t,t) ==> 0, for some IRTemp t */ + /* Xor8/16/32/64/V128(t,t) ==> 0, for some IRTemp t */ if ( (e->Iex.Binop.op == Iop_Xor64 || e->Iex.Binop.op == Iop_Xor32 || e->Iex.Binop.op == Iop_Xor16 - || e->Iex.Binop.op == Iop_Xor8) + || e->Iex.Binop.op == Iop_Xor8 + || e->Iex.Binop.op == Iop_XorV128) && sameIRTemps(e->Iex.Binop.arg1, e->Iex.Binop.arg2)) { e2 = mkZeroForXor(e->Iex.Binop.op); }