+2015-07-01 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #18619]
+ * sysdeps/ieee754/ldbl-128/s_expm1l.c (__expm1l): Force underflow
+ and return argument in case of subnormal argument.
+
2015-07-01 Martin Sebor <msebor@redhat.com>
[BZ #18435]
18496, 18497, 18498, 18502, 18507, 18512, 18513, 18519, 18520, 18522,
18527, 18528, 18529, 18530, 18532, 18533, 18534, 18536, 18539, 18540,
18542, 18544, 18545, 18546, 18547, 18549, 18553, 18558, 18569, 18583,
- 18585, 18586, 18593, 18594, 18602, 18612, 18613.
+ 18585, 18586, 18593, 18594, 18602, 18612, 18613, 18619.
* Cache information can be queried via sysconf() function on s390 e.g. with
_SC_LEVEL1_ICACHE_SIZE as argument.
if (x < minarg)
return (4.0/big - 1.0L);
- /* Avoid internal underflow when result does not underflow. */
- if (fabsl (x) < 0x1p-113L && fabsl (x) >= LDBL_MIN)
- return x;
+ /* Avoid internal underflow when result does not underflow, while
+ ensuring underflow (without returning a zero of the wrong sign)
+ when the result does underflow. */
+ if (fabsl (x) < 0x1p-113L)
+ {
+ if (fabsl (x) < LDBL_MIN)
+ {
+ long double force_underflow = x * x;
+ math_force_eval (force_underflow);
+ }
+ return x;
+ }
/* Express x = ln 2 (k + remainder), remainder not exceeding 1/2. */
xx = C1 + C2; /* ln 2. */