[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