Add a folding rule: XorV128(t,0) ==> t.
git-svn-id: svn://svn.valgrind.org/vex/trunk@2912 8f6e269a-dfd6-0310-a8e1-e2731360e62c
diff --git a/priv/ir_opt.c b/priv/ir_opt.c
index bc019da..e2ad42d 100644
--- a/priv/ir_opt.c
+++ b/priv/ir_opt.c
@@ -2259,6 +2259,18 @@
e2 = mkZeroOfPrimopResultType(e->Iex.Binop.op);
break;
}
+ /* XorV128(t,0) ==> t */
+ if (e->Iex.Binop.op == Iop_XorV128) {
+ if (isZeroV128(e->Iex.Binop.arg2)) {
+ e2 = e->Iex.Binop.arg1;
+ break;
+ }
+ //Disabled because there's no known test case right now.
+ //if (isZeroV128(e->Iex.Binop.arg1)) {
+ // e2 = e->Iex.Binop.arg2;
+ // break;
+ //}
+ }
break;
case Iop_CmpNE32: