Author: Armin Rigo <ar...@tunes.org>
Branch: 
Changeset: r73757:4efc4e33a16b
Date: 2014-10-02 11:43 +0200
http://bitbucket.org/pypy/pypy/changeset/4efc4e33a16b/

Log:    On non-Intel platforms we get the extra logic to check for
        alignment.

diff --git a/pypy/module/pypyjit/test_pypy_c/test_micronumpy.py 
b/pypy/module/pypyjit/test_pypy_c/test_micronumpy.py
--- a/pypy/module/pypyjit/test_pypy_c/test_micronumpy.py
+++ b/pypy/module/pypyjit/test_pypy_c/test_micronumpy.py
@@ -1,4 +1,5 @@
 from pypy.module.pypyjit.test_pypy_c.test_00_model import BaseTestPyPyC
+from rpython.rlib.rawstorage import misaligned_is_fine
 
 
 class TestMicroNumPy(BaseTestPyPyC):
@@ -15,6 +16,14 @@
         log = self.run(main, [])
         assert log.result == 0
         loop, = log.loops_by_filename(self.filepath)
+        if misaligned_is_fine:
+            alignment_check = ""
+        else:
+            alignment_check = """
+                i93 = int_and(i79, 7)
+                i94 = int_is_zero(i93)
+                guard_true(i94, descr=...)
+            """
         assert loop.match("""
             i76 = int_lt(i71, 300)
             guard_true(i76, descr=...)
@@ -22,6 +31,7 @@
             guard_false(i77, descr=...)
             i78 = int_mul(i71, i61)
             i79 = int_add(i55, i78)
+            """ + alignment_check + """
             f80 = raw_load(i67, i79, descr=<ArrayF 8>)
             i81 = int_add(i71, 1)
             guard_not_invalidated(descr=...)
@@ -44,6 +54,14 @@
         log = self.run(main, [])
         assert log.result == 0
         loop, = log.loops_by_filename(self.filepath)
+        if misaligned_is_fine:
+            alignment_check = ""
+        else:
+            alignment_check = """
+                i97 = int_and(i84, 7)
+                i98 = int_is_zero(i97)
+                guard_true(i98, descr=...)
+            """
         assert loop.match("""
             i81 = int_lt(i76, 300)
             guard_true(i81, descr=...)
@@ -51,6 +69,7 @@
             guard_false(i82, descr=...)
             i83 = int_mul(i76, i64)
             i84 = int_add(i58, i83)
+            """ + alignment_check + """
             f85 = raw_load(i70, i84, descr=<ArrayF 8>)
             guard_not_invalidated(descr=...)
             f86 = float_add(f74, f85)
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to