Add a folding rule for 32Sto64.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1996 8f6e269a-dfd6-0310-a8e1-e2731360e62c
diff --git a/priv/ir_opt.c b/priv/ir_opt.c
index 2b08efd..018cb51 100644
--- a/priv/ir_opt.c
+++ b/priv/ir_opt.c
@@ -1078,7 +1078,13 @@
0xFFFFFFFFULL
& e->Iex.Unop.arg->Iex.Const.con->Ico.U32));
break;
-
+ case Iop_32Sto64: {
+ /* signed */ Long s64 = e->Iex.Unop.arg->Iex.Const.con->Ico.U32;
+ s64 <<= 32;
+ s64 >>= 32;
+ e2 = IRExpr_Const(IRConst_U64((ULong)s64));
+ break;
+ }
case Iop_CmpNEZ8:
e2 = IRExpr_Const(IRConst_U1(toBool(
0 !=