Author: Armin Rigo <[email protected]>
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
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit