Author: Alex Gaynor <[email protected]>
Branch: 
Changeset: r46276:b93fffded57b
Date: 2011-08-04 10:54 -0700
http://bitbucket.org/pypy/pypy/changeset/b93fffded57b/

Log:    fix these tests, the resop int_mod returns a negative value for
        mixed operand signs.

diff --git a/pypy/jit/metainterp/optimizeopt/intbounds.py 
b/pypy/jit/metainterp/optimizeopt/intbounds.py
--- a/pypy/jit/metainterp/optimizeopt/intbounds.py
+++ b/pypy/jit/metainterp/optimizeopt/intbounds.py
@@ -131,14 +131,10 @@
         if v2.is_constant():
             val = v2.box.getint()
             r = self.getvalue(op.result)
-            if val > 0:
-                r.intbound.make_ge(IntBound(0, 0))
-                r.intbound.make_lt(IntBound(val, val))
-            elif val < 0:
-                r.intbound.make_gt(IntBound(val, val))
-                r.intbound.make_le(IntBound(0, 0))
-            # No optimizations if val == 0, that should probably even be an
-            # error, that should never happen.
+            if val < 0:
+                val = -val
+            r.intbound.make_gt(IntBound(-val, -val))
+            r.intbound.make_lt(IntBound(val, val))
 
     def optimize_INT_LSHIFT(self, op):
         v1 = self.getvalue(op.getarg(0))
diff --git a/pypy/jit/metainterp/optimizeopt/test/test_optimizebasic.py 
b/pypy/jit/metainterp/optimizeopt/test/test_optimizebasic.py
--- a/pypy/jit/metainterp/optimizeopt/test/test_optimizebasic.py
+++ b/pypy/jit/metainterp/optimizeopt/test/test_optimizebasic.py
@@ -4627,12 +4627,12 @@
         i2 = int_mod(i0, 12)
         i3 = int_gt(i2, 12)
         guard_false(i3) []
-        i4 = int_lt(i2, 0)
+        i4 = int_lt(i2, -12)
         guard_false(i4) []
         i5 = int_mod(i1, -12)
         i6 = int_lt(i5, -12)
         guard_false(i6) []
-        i7 = int_gt(i5, 0)
+        i7 = int_gt(i5, 12)
         guard_false(i7) []
         jump(i2, i5)
         """
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to