[pypy-commit] pypy intbound-improvements: invert(invert(x)) == x
cfbolz
pypy.commits at gmail.com
Mon Dec 4 04:20:42 EST 2017
Author: Carl Friedrich Bolz-Tereick <cfbolz at gmx.de>
Branch: intbound-improvements
Changeset: r93271:cfd8399c3787
Date: 2017-12-03 19:27 +0100
http://bitbucket.org/pypy/pypy/changeset/cfd8399c3787/
Log: invert(invert(x)) == x
diff --git a/rpython/jit/metainterp/optimizeopt/rewrite.py b/rpython/jit/metainterp/optimizeopt/rewrite.py
--- a/rpython/jit/metainterp/optimizeopt/rewrite.py
+++ b/rpython/jit/metainterp/optimizeopt/rewrite.py
@@ -96,6 +96,10 @@
return False
+ def optimize_INT_INVERT(self, op):
+ self.optimizer.pure_from_args(rop.INT_INVERT, [op], op.getarg(0))
+ return self.emit(op)
+
def optimize_INT_AND(self, op):
b1 = self.getintbound(op.getarg(0))
b2 = self.getintbound(op.getarg(1))
diff --git a/rpython/jit/metainterp/optimizeopt/test/test_optimizebasic.py b/rpython/jit/metainterp/optimizeopt/test/test_optimizebasic.py
--- a/rpython/jit/metainterp/optimizeopt/test/test_optimizebasic.py
+++ b/rpython/jit/metainterp/optimizeopt/test/test_optimizebasic.py
@@ -3433,6 +3433,20 @@
"""
self.optimize_loop(ops, expected)
+ def test_int_invert(self):
+ ops = """
+ [i0]
+ i2 = int_invert(i0)
+ i3 = int_invert(i2)
+ jump(i3)
+ """
+ expected = """
+ [i0]
+ i2 = int_invert(i0)
+ jump(i0)
+ """
+ self.optimize_loop(ops, expected)
+
def test_int_add_sub_constants_inverse(self):
py.test.skip("reenable")
import sys
More information about the pypy-commit
mailing list