Author: Richard Plangger <[email protected]>
Branch: vecopt
Changeset: r78698:152353977ab7
Date: 2015-07-28 20:29 +0200
http://bitbucket.org/pypy/pypy/changeset/152353977ab7/

Log:    stripping sse4 of the model returned from host platform in the test
        to pass it (c compiler will never append sse4) considering that
        descr can be a basicfaildescr in the tests

diff --git a/rpython/jit/backend/llgraph/runner.py 
b/rpython/jit/backend/llgraph/runner.py
--- a/rpython/jit/backend/llgraph/runner.py
+++ b/rpython/jit/backend/llgraph/runner.py
@@ -876,20 +876,21 @@
                 value = self.env[box]
             else:
                 value = None
-            accum = descr.rd_accum_list
-            while accum != None:
-                if accum.position != i:
-                    accum = accum.prev
-                    continue
-                if accum.operation == '+':
-                    value = sum(value)
-                    break
-                elif accum.operation == '*':
-                    def prod(acc, x): return acc * x
-                    value = reduce(prod, value, 1)
-                    break
-                else:
-                    raise NotImplementedError("accum operator in fail guard")
+            if hasattr(descr, 'rd_accum_list'):
+                accum = descr.rd_accum_list
+                while accum != None:
+                    if accum.position != i:
+                        accum = accum.prev
+                        continue
+                    if accum.operation == '+':
+                        value = sum(value)
+                        break
+                    elif accum.operation == '*':
+                        def prod(acc, x): return acc * x
+                        value = reduce(prod, value, 1)
+                        break
+                    else:
+                        raise NotImplementedError("accum operator in fail 
guard")
             values.append(value)
         if hasattr(descr, '_llgraph_bridge'):
             target = (descr._llgraph_bridge, -1)
diff --git a/rpython/jit/backend/test/test_detect_cpu.py 
b/rpython/jit/backend/test/test_detect_cpu.py
--- a/rpython/jit/backend/test/test_detect_cpu.py
+++ b/rpython/jit/backend/test/test_detect_cpu.py
@@ -31,6 +31,8 @@
 def test_detect_model_from_c_compiler():
     info1 = detect_model_from_host_platform()
     info2 = detect_model_from_c_compiler()
+    if info1.endswith("-sse4"):
+        info1 = info1[:-len("-sse4")]
     assert info1 == info2
 
 def test_getcpufeatures():
diff --git a/rpython/jit/metainterp/test/test_resoperation.py 
b/rpython/jit/metainterp/test/test_resoperation.py
--- a/rpython/jit/metainterp/test/test_resoperation.py
+++ b/rpython/jit/metainterp/test/test_resoperation.py
@@ -2,6 +2,7 @@
 import re
 from rpython.jit.metainterp import resoperation as rop
 from rpython.jit.metainterp.history import AbstractDescr, AbstractFailDescr
+from rpython.jit.metainterp.history import ConstInt
 
 def test_arity_mixins():
     cases = [
@@ -85,10 +86,10 @@
     py.test.raises(AssertionError, "newops[0].setdescr('foobar')")
 
 def test_cast_ops():
-    op = rop.ResOperation(rop.rop.INT_SIGNEXT, ['a', 1], 'c')
+    op = rop.ResOperation(rop.rop.INT_SIGNEXT, ['a', ConstInt(1)], 'c')
     assert op.casts_box()
     assert isinstance(op, rop.CastResOp)
-    assert op.cast_to == ('i',1)
+    assert op.cast_to() == ('i',1)
     op = rop.ResOperation(rop.rop.CAST_FLOAT_TO_INT, ['a'], 'c')
     assert op.casts_box()
     assert isinstance(op, rop.CastResOp)
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to