Author: Richard Plangger <r...@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 _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit