[pypy-commit] pypy ppc-vsx-support: resolve issues in test_schedule introduced by vec_load/store

plan_rich pypy.commits at gmail.com
Mon Sep 12 08:28:31 EDT 2016


Author: Richard Plangger <planrichi at gmail.com>
Branch: ppc-vsx-support
Changeset: r87039:29d7e657b3af
Date: 2016-09-12 14:27 +0200
http://bitbucket.org/pypy/pypy/changeset/29d7e657b3af/

Log:	resolve issues in test_schedule introduced by vec_load/store

diff --git a/rpython/jit/metainterp/optimizeopt/test/test_schedule.py b/rpython/jit/metainterp/optimizeopt/test/test_schedule.py
--- a/rpython/jit/metainterp/optimizeopt/test/test_schedule.py
+++ b/rpython/jit/metainterp/optimizeopt/test/test_schedule.py
@@ -6,6 +6,7 @@
 from rpython.jit.metainterp.optimizeopt.vector import (VecScheduleState,
         Pack, Pair, NotAProfitableLoop, VectorizingOptimizer, X86_CostModel,
         PackSet)
+from rpython.jit.backend.llsupport.vector_ext import VectorExt
 from rpython.jit.metainterp.optimizeopt.dependency import Node, DependencyGraph
 from rpython.jit.metainterp.optimizeopt.schedule import Scheduler
 from rpython.jit.metainterp.optimizeopt.test.test_util import LLtypeMixin
@@ -33,6 +34,10 @@
             'char': self.chararraydescr,
         }
 
+    def setup_method(self, name):
+        self.vector_ext = VectorExt()
+        self.vector_ext.enable(16, True)
+
     def pack(self, loop, l, r, input_type=None, output_type=None):
         return Pack(loop.graph.nodes[l:r])
 
@@ -92,7 +97,7 @@
         ps.packs = [self.pack(loop1, 0, 3)]
         op1 = ps.packs[0].operations[0]
         op2 = ps.packs[0].operations[1]
-        ps.split_overloaded_packs()
+        ps.split_overloaded_packs(self.vector_ext)
         assert len(ps.packs) == 1
         assert ps.packs[0].leftmost() is op1.getoperation()
         assert ps.packs[0].rightmost() is op2.getoperation()
@@ -109,7 +114,7 @@
         pack1 = self.pack(loop1, 0, 6)
         loop2 = self.schedule(loop1, [pack1])
         loop3 = self.parse_trace("""
-        v10[4xi32] = vec_raw_load_f(p0, i0, descr=float)
+        v10[4xi32] = vec_load_f(p0, i0, 1, 0, descr=float)
         f10 = raw_load_f(p0, i4, descr=float)
         f11 = raw_load_f(p0, i5, descr=float)
         """, False)
@@ -129,7 +134,7 @@
         pack3 = self.pack(loop1, 4, 6)
         loop2 = self.schedule(loop1, [pack1, pack2, pack3])
         loop3 = self.parse_trace("""
-        v10[2xi64] = vec_raw_load_i(p0, i0, descr=long)
+        v10[2xi64] = vec_load_i(p0, i0, 1, 0, descr=long)
         v20[2xi32] = vec_int_signext(v10[2xi64], 4)
         v30[2xf64] = vec_cast_int_to_float(v20[2xi32])
         """, False)
@@ -266,10 +271,10 @@
                                   '_prevent_signext': void
                               })
         loop3 = self.parse_trace("""
-        v10[2xf64] = vec_raw_load_f(p0, i1, descr=double)
-        v11[2xf64] = vec_raw_load_f(p0, i3, descr=double)
-        v12[2xf64] = vec_raw_load_f(p0, i5, descr=double)
-        v13[2xf64] = vec_raw_load_f(p0, i7, descr=double)
+        v10[2xf64] = vec_load_f(p0, i1, 1, 0, descr=double)
+        v11[2xf64] = vec_load_f(p0, i3, 1, 0, descr=double)
+        v12[2xf64] = vec_load_f(p0, i5, 1, 0, descr=double)
+        v13[2xf64] = vec_load_f(p0, i7, 1, 0, descr=double)
         v14[2xi32] = vec_cast_float_to_int(v10[2xf64])
         v15[2xi32] = vec_cast_float_to_int(v11[2xf64])
         v16[2xi32] = vec_cast_float_to_int(v12[2xf64])
@@ -279,7 +284,7 @@
         v23[6xi16] = vec_pack_i(v16[2xi32], v17[2xi32], 2, 2)
         v20[4xi16] = vec_int_signext(v23[4xi32],2)
         v24[8xi16] = vec_pack_i(v18[4xi16], v20[4xi16], 4, 4)
-        vec_raw_store(p1, i1, v24[8xi16], descr=short)
+        vec_store(p1, i1, v24[8xi16], 1, 0, descr=short)
         """, False)
         self.assert_equal(loop2, loop3)
 
@@ -305,12 +310,12 @@
         pack3 = self.pack(loop1, 8, 12)
         loop2 = self.schedule(loop1, [pack1,pack2,pack3])
         loop3 = self.parse_trace("""
-        v44[2xf64] = vec_raw_load_f(p0, i1, descr=double) 
-        v45[2xf64] = vec_raw_load_f(p0, i3, descr=double) 
+        v44[2xf64] = vec_load_f(p0, i1, 1, 0, descr=double) 
+        v45[2xf64] = vec_load_f(p0, i3, 1, 0, descr=double) 
         v46[2xi32] = vec_cast_float_to_singlefloat(v44[2xf64]) 
         v47[2xi32] = vec_cast_float_to_singlefloat(v45[2xf64]) 
         v41[4xi32] = vec_pack_i(v46[2xi32], v47[2xi32], 2, 2) 
-        vec_raw_store(p1, i1, v41[4xi32], descr=float)
+        vec_store(p1, i1, v41[4xi32], 1, 0, descr=float)
         """, False)
         self.assert_equal(loop2, loop3)
 
@@ -331,7 +336,7 @@
         loop2 = self.schedule(loop1, [pack1,pack2,pack3], prepend_invariant=True)
         loop3 = self.parse_trace("""
         v9[2xi64] = vec_expand_i(255)
-        v10[2xi64] = vec_raw_load_i(p0, i1, descr=long)
+        v10[2xi64] = vec_load_i(p0, i1, 1, 0, descr=long)
         v11[2xi64] = vec_int_and(v10[2xi64], v9[2xi64])
         vec_guard_true(v11[2xi64]) []
         """, False)
@@ -350,7 +355,7 @@
         pack2 = self.pack(loop1, 4, 6)
         loop2 = self.schedule(loop1, [pack1,pack2], prepend_invariant=True)
         loop3 = self.parse_trace("""
-        v1[4xi32] = vec_raw_load_i(p0, i1, descr=float)
+        v1[4xi32] = vec_load_i(p0, i1, 1, 0, descr=float)
         i10 = vec_unpack_i(v1[4xi32], 0, 1)
         raw_store(p0, i3, i10, descr=float)
         i11 = vec_unpack_i(v1[4xi32], 1, 1)
@@ -426,7 +431,7 @@
         """)
         pack = self.pack(trace, 0, 4)
         packs = []
-        pack.split(packs, 16)
+        pack.split(packs, 16, self.vector_ext)
         packs.append(pack)
         assert len(packs) == 2
 
@@ -438,7 +443,7 @@
         """)
         pack = self.pack(trace, 0, 2)
         packset = FakePackSet([pack])
-        packset.split_overloaded_packs()
+        packset.split_overloaded_packs(self.vector_ext)
         assert len(packset.packs) == 1
 
     def test_expand(self):


More information about the pypy-commit mailing list