Author: Richard Plangger <planri...@gmail.com> Branch: vecopt-merge Changeset: r80131:d1e7c2151d01 Date: 2015-10-12 12:23 +0200 http://bitbucket.org/pypy/pypy/changeset/d1e7c2151d01/
Log: added test case to stress the case while scheduling diff --git a/pypy/module/micronumpy/test/test_zjit.py b/pypy/module/micronumpy/test/test_zjit.py --- a/pypy/module/micronumpy/test/test_zjit.py +++ b/pypy/module/micronumpy/test/test_zjit.py @@ -844,7 +844,6 @@ def test_where(self): result = self.run("where") assert result == -40 - self.check_vectorized(1, 0) def define_searchsorted(): return """ diff --git a/rpython/jit/metainterp/optimizeopt/test/test_vecopt.py b/rpython/jit/metainterp/optimizeopt/test/test_vecopt.py --- a/rpython/jit/metainterp/optimizeopt/test/test_vecopt.py +++ b/rpython/jit/metainterp/optimizeopt/test/test_vecopt.py @@ -1315,31 +1315,29 @@ except NotAVectorizeableLoop: pass - def test_remove_mew(self): + def test_pass(self): trace = self.parse_loop(""" - [p0, p1, p2, p3, i4, i5, p6, p7, i8, f9, i10, i11] - f12 = raw_load_f(i8, i5, descr=floatarraydescr) - guard_not_invalidated(descr=<rpython.jit.metainterp.compile.ResumeGuardDescr object at 0x7f0e5c61e990>) [p7, p6, p2, p1, p0, f12, i4, p3, i5] - f14 = float_mul(f12, 0.0) - i15 = float_eq(f14, f14) - guard_true(i15, descr=<rpython.jit.metainterp.compile.ResumeGuardCopiedDescr object at 0x7f0e5c63e610>) [p7, p6, p2, p1, p0, f12, i4, p3, i5] - f17 = call_f(1234, f12, f9, descr=writearraydescr) - i20 = call_i(1234444, 232, descr=writearraydescr) - f21 = float_mul(f17, 0.0) - i22 = float_eq(f21, f21) - guard_true(i22, descr=<rpython.jit.metainterp.compile.ResumeGuardDescr object at 0x7f0e5c6a47d0>) [p7, p6, p2, p1, p0, f9, f12, i20, f21, f17, i4, p3, i5] - i23 = int_is_true(i20) - guard_false(i23, descr=<rpython.jit.metainterp.compile.ResumeGuardCopiedDescr object at 0x7f0e5c60b7d0>) [p7, p6, p2, p1, p0, f9, f12, i20, f21, f17, i4, p3, i5] - raw_store(i10, i5, f17, descr=floatarraydescr) - i25 = int_add(i4, 1) - i27 = int_add(i5, 8) - i28 = int_ge(i25, i11) - guard_false(i28, descr=<rpython.jit.metainterp.compile.ResumeGuardDescr object at 0x7f0e5c75b690>) [i11, i25, p7, p6, p2, p1, p0, i27, None, p3, None] - debug_merge_point(0, 0, '(numpy_call2_inc_out_right: no get_printable_location)') - jump(p0, p1, p2, p3, i25, i27, p6, p7, i8, f9, i10, i11) + [p0,i0] + f0 = raw_load_f(p0, i0, descr=floatarraydescr) + f1 = float_mul(f0, 0.0) + i2 = float_eq(f1, f1) + guard_true(i2) [p0, i0] + f2 = call_f(0, f0) + f21 = float_mul(f2, 0.0) + i3 = float_eq(f21, f21) + guard_true(i3) [p0, i0] + raw_store(p0, i0, f21, descr=floatarraydescr) + i4 = int_add(i0, 8) + jump(p0, i4) """) vopt = self.schedule(trace) - self.debug_print_operations(trace) + self.ensure_operations([ + 'v10[2xf64] = vec_raw_load_f(p0,i0,descr=floatarraydescr)', + 'v11[2xf64] = vec_float_mul(v10[2xf64], v9[2xf64])', + 'v12[2xf64] = vec_float_eq(v11[2xf64], v11[2xf64])', + 'i100 = vec_unpack_f(v12[4xi32], 0, 1)', + 'guard_true(i100) [p0, i0]', + ], trace) class TestLLtype(BaseTestVectorize, LLtypeMixin): diff --git a/rpython/jit/metainterp/resoperation.py b/rpython/jit/metainterp/resoperation.py --- a/rpython/jit/metainterp/resoperation.py +++ b/rpython/jit/metainterp/resoperation.py @@ -722,6 +722,8 @@ class VectorOp(object): _mixin_ = True + type = 'f' + def vector_bytesize(self): assert self.count > 0 return self.byte_size * self.count diff --git a/rpython/jit/tool/oparser.py b/rpython/jit/tool/oparser.py --- a/rpython/jit/tool/oparser.py +++ b/rpython/jit/tool/oparser.py @@ -136,7 +136,7 @@ return self._cache[elem] except KeyError: pass - if elem[0] in 'ifrp': + if elem[0] in 'ifrpv': box = OpHelpers.inputarg_from_tp(elem[0]) number = elem[1:] if elem.startswith('v'): _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit