|
From: <sv...@va...> - 2005-07-01 10:51:27
|
Author: sewardj
Date: 2005-07-01 11:51:24 +0100 (Fri, 01 Jul 2005)
New Revision: 1241
Log:
Yet Another Folding Rule (YAFR) (tm)
Modified:
trunk/priv/ir/iropt.c
Modified: trunk/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
--- trunk/priv/ir/iropt.c 2005-07-01 10:50:50 UTC (rev 1240)
+++ trunk/priv/ir/iropt.c 2005-07-01 10:51:24 UTC (rev 1241)
@@ -1360,6 +1360,13 @@
e2 =3D e->Iex.Binop.arg1;
} else
=20
+ /* And32(x,0) =3D=3D> 0 */
+ if (e->Iex.Binop.op =3D=3D Iop_And32
+ && e->Iex.Binop.arg2->tag =3D=3D Iex_Const
+ && e->Iex.Binop.arg2->Iex.Const.con->Ico.U32 =3D=3D 0) {
+ e2 =3D IRExpr_Const(IRConst_U32(0));
+ } else
+
/* Or32(0,x) =3D=3D> x */
if (e->Iex.Binop.op =3D=3D Iop_Or32
&& e->Iex.Binop.arg1->tag =3D=3D Iex_Const
|