|
From: <sv...@va...> - 2007-01-16 22:02:38
|
Author: sewardj
Date: 2007-01-16 22:02:35 +0000 (Tue, 16 Jan 2007)
New Revision: 1729
Log:
Merge r1728 (Constant fold XorV128(t,t) -> 0.)
Modified:
branches/VEX_3_2_BRANCH/priv/ir/iropt.c
Modified: branches/VEX_3_2_BRANCH/priv/ir/iropt.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- branches/VEX_3_2_BRANCH/priv/ir/iropt.c 2007-01-16 19:19:55 UTC (rev =
1728)
+++ branches/VEX_3_2_BRANCH/priv/ir/iropt.c 2007-01-16 22:02:35 UTC (rev =
1729)
@@ -894,6 +894,7 @@
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 @@
e2 =3D e->Iex.Binop.arg1;
}
=20
- /* Xor8/16/32/64(t,t) =3D=3D> 0, for some IRTemp t */
+ /* Xor8/16/32/64/V128(t,t) =3D=3D> 0, for some IRTemp t */
if ( (e->Iex.Binop.op =3D=3D Iop_Xor64
|| e->Iex.Binop.op =3D=3D Iop_Xor32
|| e->Iex.Binop.op =3D=3D Iop_Xor16
- || e->Iex.Binop.op =3D=3D Iop_Xor8)
+ || e->Iex.Binop.op =3D=3D Iop_Xor8
+ || e->Iex.Binop.op =3D=3D Iop_XorV128)
&& sameIRTemps(e->Iex.Binop.arg1, e->Iex.Binop.arg2)) {
e2 =3D mkZeroForXor(e->Iex.Binop.op);
}
|