[pypy-commit] pypy vecopt: updated test for constant expansion (test_zjit),

plan_rich noreply at buildbot.pypy.org
Fri May 8 11:11:37 CEST 2015


Author: Richard Plangger <rich at pasra.at>
Branch: vecopt
Changeset: r77203:b5b718bd459b
Date: 2015-05-07 16:54 +0200
http://bitbucket.org/pypy/pypy/changeset/b5b718bd459b/

Log:	updated test for constant expansion (test_zjit), added a test to
	test_vectorize.py that tests variable expansion, call2 with variable
	expansion works (llgraph)

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
@@ -98,16 +98,6 @@
         result = self.run("add_const")
         assert result == 29 + 3
         self.check_trace_count(1)
-        self.check_simple_loop({
-            'float_add': 1,
-            'guard_false': 1,
-            'guard_not_invalidated': 1,
-            'int_add': 3,
-            'int_ge': 1,
-            'jump': 1,
-            'raw_load': 1,
-            'raw_store': 1,
-        })
 
     def define_pow():
         return """
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
@@ -985,7 +985,7 @@
         ops = """
         [p0,i0]
         guard_early_exit() [p0,i0]
-        i1 = getarrayitem_raw(p0, i0, descr=floatarraydescr) # constant index
+        i1 = getarrayitem_raw(p0, i0, descr=floatarraydescr)
         i4 = int_mul(i1, 42)
         i3 = int_add(i0,1)
         i5 = int_lt(i3, 10)
@@ -1008,6 +1008,33 @@
         vopt = self.vectorize(self.parse_loop(ops),1)
         self.assert_equal(vopt.loop, self.parse_loop(opt))
 
+    def test_variable_expansion(self):
+        ops = """
+        [p0,i0,f3]
+        guard_early_exit() [p0,i0]
+        f1 = getarrayitem_raw(p0, i0, descr=floatarraydescr)
+        f4 = int_mul(f1, f3)
+        i3 = int_add(i0,1)
+        i5 = int_lt(i3, 10)
+        guard_true(i5) [p0, i0]
+        jump(p0,i3,f3)
+        """
+        opt="""
+        [p0,i0,f3]
+        guard_early_exit() [p0,i0]
+        i20 = int_add(i0, 1)
+        i30 = int_lt(i20, 10)
+        i2 = int_add(i0, 2)
+        i3 = int_lt(i2, 10)
+        guard_true(i3) [p0,i0]
+        v1 = vec_getarrayitem_raw(p0, i0, 2, descr=floatarraydescr)
+        v3 = vec_expand(f3, 2)
+        v2 = vec_int_mul(v1, v3, 2)
+        jump(p0,i2,f3)
+        """
+        vopt = self.vectorize(self.parse_loop(ops),1)
+        self.assert_equal(vopt.loop, self.parse_loop(opt))
+
     def test_element_f45_in_guard_failargs(self):
         ops = """
         [p36, i28, p9, i37, p14, f34, p12, p38, f35, p39, i40, i41, p42, i43, i44, i21, i4, i0, i18]


More information about the pypy-commit mailing list