[pypy-commit] pypy vecopt2: removed check trace count == 1, added missed changes in merge

plan_rich noreply at buildbot.pypy.org
Tue May 5 09:46:28 CEST 2015


Author: Richard Plangger <rich at pasra.at>
Branch: vecopt2
Changeset: r77133:af8b1ecd4d30
Date: 2015-05-05 08:46 +0200
http://bitbucket.org/pypy/pypy/changeset/af8b1ecd4d30/

Log:	removed check trace count == 1, added missed changes in merge

diff --git a/rpython/jit/backend/x86/rx86.py b/rpython/jit/backend/x86/rx86.py
--- a/rpython/jit/backend/x86/rx86.py
+++ b/rpython/jit/backend/x86/rx86.py
@@ -647,6 +647,8 @@
     MOVUPS_jx = xmminsn(rex_nw, '\x0F\x11', register(2, 8), abs_(1))
     MOVUPS_ax = xmminsn(rex_nw, '\x0F\x11', register(2, 8), mem_reg_plus_scaled_reg_plus_const(1))
 
+    PSRLDQ_xi = xmminsn('\x66\x0F\x73', orbyte(0xd8), mem_reg_plus_const(1))
+    # SSE4.1 PEXTRDD_rxi = xmminsn('\x66', rex_nw, '\x0F\x3A\x14', register(1,8), register(2), immediate(3,'b'))
     # ------------------------------------------------------------
 
 Conditions = {
@@ -765,6 +767,15 @@
 define_modrm_modes('MOVAPD_*x', ['\x66', rex_nw, '\x0F\x29', register(2,8)],
                    regtype='XMM')
 
+define_modrm_modes('MOVDQA_x*', ['\x66', rex_nw, '\x0F\x6F', register(1, 8)],
+                   regtype='XMM')
+define_modrm_modes('MOVDQA_*x', ['\x66', rex_nw, '\x0F\x7F', register(2, 8)],
+                   regtype='XMM')
+define_modrm_modes('MOVDQU_x*', ['\xF3', rex_nw, '\x0F\x6F', register(1, 8)],
+                   regtype='XMM')
+define_modrm_modes('MOVDQU_*x', ['\xF3', rex_nw, '\x0F\x7F', register(2, 8)],
+                   regtype='XMM')
+
 define_modrm_modes('SQRTSD_x*', ['\xF2', rex_nw, '\x0F\x51', register(1,8)], regtype='XMM')
 
 define_modrm_modes('XCHG_r*', [rex_w, '\x87', register(1, 8)])
@@ -793,6 +804,9 @@
     add_insn('m', mem_reg_plus_const(2))
 
 define_pxmm_insn('PADDQ_x*',     '\xD4')
+define_pxmm_insn('PADDD_x*',     '\xFE')
+define_pxmm_insn('PADDW_x*',     '\xFD')
+define_pxmm_insn('PADDB_x*',     '\xFC')
 define_pxmm_insn('PSUBQ_x*',     '\xFB')
 define_pxmm_insn('PAND_x*',      '\xDB')
 define_pxmm_insn('POR_x*',       '\xEB')
diff --git a/rpython/jit/metainterp/optimizeopt/dependency.py b/rpython/jit/metainterp/optimizeopt/dependency.py
--- a/rpython/jit/metainterp/optimizeopt/dependency.py
+++ b/rpython/jit/metainterp/optimizeopt/dependency.py
@@ -119,9 +119,9 @@
         olddescr = tgt_op.getdescr()
         descr = compile.ResumeAtLoopHeaderDescr()
         if olddescr:
-            descr.rd_consts = olddescr.rd_consts 
-            descr.rd_pendingfields = olddescr.rd_pendingfields
-            descr.rd_virtuals = olddescr.rd_virtuals
+            #descr.rd_consts = olddescr.rd_consts 
+            #descr.rd_pendingfields = olddescr.rd_pendingfields
+            #descr.rd_virtuals = olddescr.rd_virtuals
             descr.rd_numb = olddescr.rd_numb
             descr.rd_count = olddescr.rd_count
             descr.rd_frame_info_list = olddescr.rd_frame_info_list
diff --git a/rpython/jit/metainterp/optimizeopt/vectorize.py b/rpython/jit/metainterp/optimizeopt/vectorize.py
--- a/rpython/jit/metainterp/optimizeopt/vectorize.py
+++ b/rpython/jit/metainterp/optimizeopt/vectorize.py
@@ -99,7 +99,6 @@
         self.loop.operations = self.get_newoperations();
         self.clear_newoperations();
 
-        debug_print_operations(self.loop)
         # vectorize
         self.build_dependency_graph()
         self.find_adjacent_memory_refs()
diff --git a/rpython/jit/metainterp/test/test_vectorize.py b/rpython/jit/metainterp/test/test_vectorize.py
--- a/rpython/jit/metainterp/test/test_vectorize.py
+++ b/rpython/jit/metainterp/test/test_vectorize.py
@@ -58,8 +58,6 @@
             return res
         res = self.meta_interp(f, [i])
         assert res == f(i)
-        if i > 3:
-            self.check_trace_count(1)
 
     @py.test.mark.parametrize('i',[1,2,3,8,17,128,130,500,501,502,1300])
     def test_vectorize_array_get_set(self,i):
@@ -94,8 +92,6 @@
             return res
         res = self.meta_interp(f, [i])
         assert res == f(i)
-        #if 4 < i:
-        #    self.check_trace_count(1)
 
     @py.test.mark.parametrize('i',[1,2,3,4,9])
     def test_vector_register_too_small_vector(self, i):


More information about the pypy-commit mailing list