diff options
author | Liubov Dmitrieva <liubov.dmitrieva@gmail.com> | 2012-09-03 15:32:13 +0200 |
---|---|---|
committer | Andreas Jaeger <aj@suse.de> | 2012-09-03 15:32:13 +0200 |
commit | 4ffffbd272264f083f35783ed81339304025f855 (patch) | |
tree | cdd72337981ee00f9c6e48c80905918d8d7feaab /sysdeps/x86_64/fpu/libm-test-ulps | |
parent | 511fa2864a8d01a09b23a6b8b9a599429b7055f6 (diff) | |
download | glibc-4ffffbd272264f083f35783ed81339304025f855.tar glibc-4ffffbd272264f083f35783ed81339304025f855.tar.gz glibc-4ffffbd272264f083f35783ed81339304025f855.tar.bz2 glibc-4ffffbd272264f083f35783ed81339304025f855.zip |
Add optimized sinf and cosf routines for x86 and x86-64
* sysdeps/i386/i686/fpu/multiarch/Makefile (sysdep_routines):
Add s_sinf-sse2, s_conf-sse2.
* sysdeps/i386/i686/fpu/multiarch/s_sinf-sse2.S: New file.
* sysdeps/i386/i686/fpu/multiarch/s_cosf-sse2.S: New file.
* sysdeps/i386/i686/fpu/multiarch/s_sinf.c: New file.
* sysdeps/i386/i686/fpu/multiarch/s_cosf.c: New file.
* sysdeps/ieee754/flt-32/s_sinf.c (SINF, SINF_FUNC): Add macros
for using routine as __sinf_ia32.
Use macro for function declaration and weak_alias.
* sysdeps/ieee754/flt-32/s_cosf.c (COSF, COSF_FUNC): Add macros
for using routine as __cosf_ia32.
Use macro for function declaration and weak_alias.
* sysdeps/i386/i686/fpu/multiarch/e_expf-sse2.S: Fix Copyright.
* sysdeps/i386/i686/fpu/multiarch/e_expf.c: Fix Copyright.
* sysdeps/x86_64/fpu/s_sinf.S: New file.
* sysdeps/x86_64/fpu/s_cosf.S: New file.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
* math/libm-test.inc (cos_test): Add more test cases.
(sin_test): Likewise.
(sincos_test): Likewise.
Diffstat (limited to 'sysdeps/x86_64/fpu/libm-test-ulps')
-rw-r--r-- | sysdeps/x86_64/fpu/libm-test-ulps | 35 |
1 files changed, 31 insertions, 4 deletions
diff --git a/sysdeps/x86_64/fpu/libm-test-ulps b/sysdeps/x86_64/fpu/libm-test-ulps index 8a38221133..eb02222d23 100644 --- a/sysdeps/x86_64/fpu/libm-test-ulps +++ b/sysdeps/x86_64/fpu/libm-test-ulps @@ -1208,6 +1208,8 @@ ifloat: 1 ildouble: 1 ldouble: 1 Test "cos_downward (10) == -0.8390715290764524522588639478240648345199": +float: 1 +ifloat: 1 ildouble: 1 ldouble: 1 Test "cos_downward (2) == -0.4161468365471423869975682295007621897660": @@ -1239,6 +1241,8 @@ ifloat: 1 ildouble: 1 ldouble: 1 Test "cos_downward (9) == -0.9111302618846769883682947111811653112463": +float: 1 +ifloat: 1 ildouble: 1 ldouble: 1 @@ -1285,15 +1289,22 @@ ildouble: 1 ldouble: 1 # cos_upward +Test "cos_upward (1) == 0.5403023058681397174009366074429766037323": +float: 1 +ifloat: 1 Test "cos_upward (10) == -0.8390715290764524522588639478240648345199": float: 1 ifloat: 1 ildouble: 1 ldouble: 1 Test "cos_upward (2) == -0.4161468365471423869975682295007621897660": +float: 1 +ifloat: 1 ildouble: 1 ldouble: 1 Test "cos_upward (3) == -0.9899924966004454572715727947312613023937": +float: 1 +ifloat: 1 ildouble: 1 ldouble: 1 Test "cos_upward (4) == -0.6536436208636119146391681830977503814241": @@ -1311,6 +1322,8 @@ Test "cos_upward (7) == 0.7539022543433046381411975217191820122183": float: 1 ifloat: 1 Test "cos_upward (8) == -0.1455000338086135258688413818311946826093": +float: 1 +ifloat: 1 ildouble: 1 ldouble: 1 Test "cos_upward (9) == -0.9111302618846769883682947111811653112463": @@ -2319,6 +2332,8 @@ Test "sin_downward (8) == 0.9893582466233817778081235982452886721164": ildouble: 1 ldouble: 1 Test "sin_downward (9) == 0.4121184852417565697562725663524351793439": +float: 1 +ifloat: 1 ildouble: 1 ldouble: 1 @@ -2374,6 +2389,8 @@ Test "sin_upward (1) == 0.8414709848078965066525023216302989996226": float: 1 ifloat: 1 Test "sin_upward (10) == -0.5440211108893698134047476618513772816836": +float: 1 +ifloat: 1 ildouble: 1 ldouble: 1 Test "sin_upward (2) == 0.9092974268256816953960198659117448427023": @@ -2382,6 +2399,8 @@ ifloat: 2 ildouble: 1 ldouble: 1 Test "sin_upward (3) == 0.1411200080598672221007448028081102798469": +float: 1 +ifloat: 1 ildouble: 1 ldouble: 1 Test "sin_upward (4) == -0.7568024953079282513726390945118290941359": @@ -2390,11 +2409,19 @@ ifloat: 1 ildouble: 1 ldouble: 1 Test "sin_upward (5) == -0.9589242746631384688931544061559939733525": +float: 1 +ifloat: 1 ildouble: 1 ldouble: 1 Test "sin_upward (6) == -0.2794154981989258728115554466118947596280": ildouble: 1 ldouble: 1 +Test "sin_upward (7) == 0.6569865987187890903969990915936351779369": +float: 1 +ifloat: 1 +Test "sin_upward (8) == 0.9893582466233817778081235982452886721164": +float: 1 +ifloat: 1 Test "sin_upward (9) == 0.4121184852417565697562725663524351793439": float: 1 ifloat: 1 @@ -3052,8 +3079,8 @@ ildouble: 1 ldouble: 1 Function: "cos_upward": -float: 2 -ifloat: 2 +float: 1 +ifloat: 1 ildouble: 1 ldouble: 1 @@ -3412,8 +3439,8 @@ ildouble: 1 ldouble: 1 Function: "sin_upward": -float: 2 -ifloat: 2 +float: 1 +ifloat: 1 ildouble: 1 ldouble: 1 |