[pypy-commit] pypy default: add a test using both vldm and vstm
bivab
noreply at buildbot.pypy.org
Thu May 2 14:23:45 CEST 2013
Author: David Schneider <david.schneider at picle.org>
Branch:
Changeset: r63800:a13c07067613
Date: 2013-05-02 14:20 +0200
http://bitbucket.org/pypy/pypy/changeset/a13c07067613/
Log: add a test using both vldm and vstm
diff --git a/rpython/jit/backend/arm/test/test_assembler.py b/rpython/jit/backend/arm/test/test_assembler.py
--- a/rpython/jit/backend/arm/test/test_assembler.py
+++ b/rpython/jit/backend/arm/test/test_assembler.py
@@ -318,6 +318,26 @@
assert longlong.getrealfloat(container[0]) == sum([float("%d.%d" % (d,d)) for d in range(n)])
lltype.free(container, flavor='raw')
+ def test_vstm_vldm_combined(self):
+ n = 14
+ source_container = lltype.malloc(lltype.Array(longlong.FLOATSTORAGE,
+ hints={'nolength': True}), n, flavor='raw')
+ target_container = lltype.malloc(lltype.Array(longlong.FLOATSTORAGE,
+ hints={'nolength': True}), n, flavor='raw')
+ for x in range(n):
+ source_container[x] = longlong.getfloatstorage(float("%d.%d" % (x,x)))
+ self.a.gen_func_prolog()
+ self.a.mc.gen_load_int(r.ip.value, rffi.cast(lltype.Signed, source_container))
+ self.a.mc.VLDM(r.ip.value, [x for x in range(n)])
+ self.a.mc.gen_load_int(r.ip.value, rffi.cast(lltype.Signed, target_container))
+ self.a.mc.VSTM(r.ip.value, [x for x in range(n)])
+ self.a.gen_func_epilog()
+ run_asm(self.a)
+ for d in range(n):
+ res = longlong.getrealfloat(target_container[0]) == float("%d.%d" % (d,d))
+ lltype.free(source_container, flavor='raw')
+ lltype.free(target_container, flavor='raw')
+
def callme(inp):
i = inp + 10
return i
More information about the pypy-commit
mailing list