]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Constant folder: enable Sub32(x,0) ==> x.
authorJulian Seward <jseward@acm.org>
Wed, 19 Dec 2012 15:28:43 +0000 (15:28 +0000)
committerJulian Seward <jseward@acm.org>
Wed, 19 Dec 2012 15:28:43 +0000 (15:28 +0000)
git-svn-id: svn://svn.valgrind.org/vex/trunk@2598

VEX/priv/ir_opt.c

index 1537df686f148c6eb7813d2b36339a2765a0f9b2..7a879d484b921fa9d2eb907a2158c9117564d7d7 100644 (file)
@@ -2063,13 +2063,14 @@ static IRExpr* fold_Expr ( IRExpr** env, IRExpr* e )
                }
                break;
 
+            case Iop_Sub32:
             case Iop_Sub64:
-               /* Sub64(x,0) ==> x */
-               if (isZeroU64(e->Iex.Binop.arg2)) {
+               /* Sub32/Sub64(x,0) ==> x */
+               if (isZeroU(e->Iex.Binop.arg2)) {
                   e2 = e->Iex.Binop.arg1;
                   break;
                }
-               /* Sub64(t,t) ==> 0, for some IRTemp t */
+               /* Sub32/Sub64(t,t) ==> 0, for some IRTemp t */
                if (sameIRExprs(env, e->Iex.Binop.arg1, e->Iex.Binop.arg2)) {
                   e2 = mkZeroOfPrimopResultType(e->Iex.Binop.op);
                   break;
@@ -2133,9 +2134,8 @@ static IRExpr* fold_Expr ( IRExpr** env, IRExpr* e )
                }
                break;
 
-            case Iop_Sub32:
             case Iop_CmpNE32:
-               /* Sub32/CmpNE32(t,t) ==> 0, for some IRTemp t */
+               /* CmpNE32(t,t) ==> 0, for some IRTemp t */
                if (sameIRExprs(env, e->Iex.Binop.arg1, e->Iex.Binop.arg2)) {
                   e2 = mkZeroOfPrimopResultType(e->Iex.Binop.op);
                   break;