]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Add a folding rule: XorV128(t,0) ==> t.
authorJulian Seward <jseward@acm.org>
Mon, 4 Aug 2014 08:09:23 +0000 (08:09 +0000)
committerJulian Seward <jseward@acm.org>
Mon, 4 Aug 2014 08:09:23 +0000 (08:09 +0000)
git-svn-id: svn://svn.valgrind.org/vex/trunk@2912

VEX/priv/ir_opt.c

index bc019dad6d295babf64ef617de120bd8087ee63a..e2ad42d1df3cb0495406820cb67ec782d072cef5 100644 (file)
@@ -2259,6 +2259,18 @@ static IRExpr* fold_Expr ( IRExpr** env, IRExpr* e )
                   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: