[pypy-commit] pypy vecopt2: added a scheduling test (failing)
plan_rich
noreply at buildbot.pypy.org
Tue May 5 09:45:47 CEST 2015
Author: Richard Plangger <rich at pasra.at>
Branch: vecopt2
Changeset: r77097:a0ef8f72f84e
Date: 2015-03-27 16:10 +0100
http://bitbucket.org/pypy/pypy/changeset/a0ef8f72f84e/
Log: added a scheduling test (failing)
diff --git a/rpython/jit/metainterp/optimizeopt/test/test_vectorize.py b/rpython/jit/metainterp/optimizeopt/test/test_vectorize.py
--- a/rpython/jit/metainterp/optimizeopt/test/test_vectorize.py
+++ b/rpython/jit/metainterp/optimizeopt/test/test_vectorize.py
@@ -807,7 +807,7 @@
i2 = getarrayitem_gc(p0, i0, descr=floatarraydescr)
i3 = getarrayitem_gc(p1, i0, descr=floatarraydescr)
i4 = {op}(i2,i3)
- setarrayitem_gc(p1, i0, i4, descr=floatarraydescr)
+ setarrayitem_gc(p2, i0, i4, descr=floatarraydescr)
jump(p0,p1,p2,i1)
""".format(op=op)
loop = self.parse_loop(ops)
@@ -819,5 +819,43 @@
(6,13,20,27),(7,14,21,28)]:
self.assert_has_pack_with(vopt.packset, opindices)
+ def test_schedule_vector_operation(self):
+ for op,vop in [('int_add','vec_int_add'), ('int_sub','vec_int_sub'),
+ ('int_mul','vec_int_mul')]:
+ ops = """
+ [p0,p1,p2,i0]
+ i1 = int_add(i0, 1)
+ i10 = int_le(i1, 128)
+ guard_true(i10) []
+ i2 = getarrayitem_gc(p0, i0, descr=floatarraydescr)
+ i3 = getarrayitem_gc(p1, i0, descr=floatarraydescr)
+ i4 = {op}(i2,i3)
+ setarrayitem_gc(p2, i0, i4, descr=floatarraydescr)
+ jump(p0,p1,p2,i1)
+ """.format(op=op)
+ vops = """
+ [p0,p1,p2,i0]
+ i1 = int_add(i0, 1)
+ i10 = int_le(i1, 128)
+ guard_true(i10) []
+ i11 = int_add(i1, 1)
+ i12 = int_le(i11, 128)
+ guard_true(i12) []
+ i13 = int_add(i11, 1)
+ i14 = int_le(i13, 128)
+ guard_true(i14) []
+ i15 = int_add(i13, 1)
+ i16 = int_le(i15, 128)
+ guard_true(i16) []
+ i2 = vec_raw_load(p0, i0, 4, descr=floatarraydescr)
+ i3 = vec_raw_load(p1, i0, 4, descr=floatarraydescr)
+ i4 = {op}(i2,i3)
+ vec_raw_store(p2, i0, i4, 4, descr=floatarraydescr)
+ jump(p0,p1,p2,i15)
+ """.format(op=vop)
+ loop = self.parse_loop(ops)
+ vopt = self.schedule(loop,3)
+ self.assert_equals(loop, self.parse_loop(vops)
+
class TestLLtype(BaseTestVectorize, LLtypeMixin):
pass
More information about the pypy-commit
mailing list