Author: Carl Friedrich Bolz-Tereick <cfb...@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 _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit