Author: David Schneider <[email protected]>
Branch: arm-backend-2
Changeset: r45107:1f2325fdd7c9
Date: 2011-06-24 17:17 +0200
http://bitbucket.org/pypy/pypy/changeset/1f2325fdd7c9/
Log: add test for jit rewriting of math.sqrt
diff --git a/pypy/jit/backend/test/runner_test.py
b/pypy/jit/backend/test/runner_test.py
--- a/pypy/jit/backend/test/runner_test.py
+++ b/pypy/jit/backend/test/runner_test.py
@@ -2554,6 +2554,29 @@
assert mem2 < mem1
assert mem2 == mem0
+ def test_math_sqrt(self):
+ if not self.cpu.supports_floats:
+ py.test.skip("requires floats")
+
+ def math_sqrt(a):
+ assert False, 'should not be called'
+ from pypy.jit.codewriter.effectinfo import EffectInfo
+
+ effectinfo = EffectInfo([], [], [], EffectInfo.EF_CAN_RAISE,
EffectInfo.OS_MATH_SQRT)
+ FPTR = self.Ptr(self.FuncType([lltype.Float], lltype.Float))
+ func_ptr = llhelper(FPTR, math_sqrt)
+ FUNC = deref(FPTR)
+ funcbox = self.get_funcbox(self.cpu, func_ptr)
+
+ calldescr = self.cpu.calldescrof(FUNC, FUNC.ARGS, FUNC.RESULT,
effectinfo)
+ testcases = [(4.0, 2.0), (6.25, 2.5)]
+ for arg, expected in testcases:
+ res = self.execute_operation(rop.CALL,
+ [funcbox, boxfloat(arg)],
+ 'float', descr=calldescr)
+ assert res.getfloat() == expected
+
+
class OOtypeBackendTest(BaseBackendTest):
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit