summaryrefslogtreecommitdiff
path: root/lib/msun/src/s_sinf.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/msun/src/s_sinf.c')
-rw-r--r--lib/msun/src/s_sinf.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/msun/src/s_sinf.c b/lib/msun/src/s_sinf.c
index 8ea9e559a56d..a2485e81beca 100644
--- a/lib/msun/src/s_sinf.c
+++ b/lib/msun/src/s_sinf.c
@@ -30,7 +30,11 @@ sinf(float x)
/* |x| ~< pi/4 */
ix &= 0x7fffffff;
- if(ix <= 0x3f490fd8) return __kernel_sinf(x,z,0);
+ if(ix <= 0x3f490fd8) {
+ if(ix<0x39800000) /* if x < 2**-12 */
+ if(((int)x)==0) return x; /* generate inexact */
+ return __kernel_sinf(x,z,0);
+ }
/* sin(Inf or NaN) is NaN */
else if (ix>=0x7f800000) return x-x;