Author: Armin Rigo <[email protected]>
Branch: jit-singlefloat
Changeset: r46108:f3bf3bf10b0c
Date: 2011-07-30 10:22 +0000
http://bitbucket.org/pypy/pypy/changeset/f3bf3bf10b0c/
Log: A basic test about arrays of doubles, and a version about arrays of
floats.
diff --git a/pypy/module/pypyjit/test_pypy_c/test_array.py
b/pypy/module/pypyjit/test_pypy_c/test_array.py
--- a/pypy/module/pypyjit/test_pypy_c/test_array.py
+++ b/pypy/module/pypyjit/test_pypy_c/test_array.py
@@ -88,6 +88,69 @@
jump(p0, p1, p2, p3, p4, p5, p6, i28, i15, p9, i10, i11,
descr=<Loop0>)
""")
+ def test_array_of_doubles(self):
+ def main():
+ from array import array
+ img = array('d', [21.5]*1000)
+ i = 0
+ while i < 1000:
+ img[i] += 20.5
+ assert img[i] == 42.0
+ i += 1
+ return 123
+ #
+ log = self.run(main, [])
+ assert log.result == 123
+ loop, = log.loops_by_filename(self.filepath)
+ assert loop.match("""
+ i10 = int_lt(i6, 1000)
+ guard_true(i10, descr=...)
+ i11 = int_lt(i6, i7)
+ guard_true(i11, descr=...)
+ f13 = getarrayitem_raw(i8, i6, descr=<FloatArrayNoLengthDescr>)
+ f15 = float_add(f13, 20.500000)
+ setarrayitem_raw(i8, i6, f15, descr=<FloatArrayNoLengthDescr>)
+ f16 = getarrayitem_raw(i8, i6, descr=<FloatArrayNoLengthDescr>)
+ i18 = float_eq(f16, 42.000000)
+ guard_true(i18, descr=...)
+ i20 = int_add(i6, 1)
+ --TICK--
+ jump(..., descr=<Loop0>)
+ """)
+
+ def test_array_of_floats(self):
+ def main():
+ from array import array
+ img = array('f', [21.5]*1000)
+ i = 0
+ while i < 1000:
+ img[i] += 20.5
+ assert img[i] == 42.0
+ i += 1
+ return 321
+ #
+ log = self.run(main, [])
+ assert log.result == 321
+ loop, = log.loops_by_filename(self.filepath)
+ assert loop.match("""
+ i10 = int_lt(i6, 1000)
+ guard_true(i10, descr=...)
+ i11 = int_lt(i6, i7)
+ guard_true(i11, descr=...)
+ i13 = getarrayitem_raw(i8, i6, descr=<UnsignedArrayNoLengthDescr>)
+ f14 = cast_singlefloat_to_float(i13)
+ f16 = float_add(f14, 20.500000)
+ i17 = cast_float_to_singlefloat(f16)
+ setarrayitem_raw(i8, i6,i17, descr=<UnsignedArrayNoLengthDescr>)
+ i18 = getarrayitem_raw(i8, i6, descr=<UnsignedArrayNoLengthDescr>)
+ f19 = cast_singlefloat_to_float(i18)
+ i21 = float_eq(f19, 42.000000)
+ guard_true(i21, descr=...)
+ i23 = int_add(i6, 1)
+ --TICK--
+ jump(..., descr=<Loop0>)
+ """)
+
def test_zeropadded(self):
def main():
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit