From 712a3eee6cc1b65356ecc2b13c05992ca0fa1554 Mon Sep 17 00:00:00 2001 From: Julian Seward Date: Tue, 16 Jan 2007 22:02:35 +0000 Subject: [PATCH] Merge r1728 (Constant fold XorV128(t,t) -> 0.) git-svn-id: svn://svn.valgrind.org/vex/branches/VEX_3_2_BRANCH@1729 --- VEX/priv/ir/iropt.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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); } -- 2.47.2