mirror of
https://sourceware.org/git/glibc.git
synced 2025-01-03 16:21:06 +00:00
Some branch prediction for log1p
This commit is contained in:
parent
e5f484c622
commit
d6e97a1da0
@ -1,3 +1,7 @@
|
||||
2012-01-09 Ulrich Drepper <drepper@gmail.com>
|
||||
|
||||
* sysdeps/ieee754/dbl-64/s_log1p.c (__log1p): Add branch prediction.
|
||||
|
||||
2012-01-08 Ulrich Drepper <drepper@gmail.com>
|
||||
|
||||
* io/bits/poll2.h: Add __BEGIN/__END_DECLS.
|
||||
|
@ -106,11 +106,11 @@ __log1p(double x)
|
||||
|
||||
k = 1;
|
||||
if (hx < 0x3FDA827A) { /* x < 0.41422 */
|
||||
if(ax>=0x3ff00000) { /* x <= -1.0 */
|
||||
if(__builtin_expect(ax>=0x3ff00000, 0)) { /* x <= -1.0 */
|
||||
if(x==-1.0) return -two54/(x-x);/* log1p(-1)=+inf */
|
||||
else return (x-x)/(x-x); /* log1p(x<-1)=NaN */
|
||||
}
|
||||
if(ax<0x3e200000) { /* |x| < 2**-29 */
|
||||
if(__builtin_expect(ax<0x3e200000, 0)) { /* |x| < 2**-29 */
|
||||
math_force_eval(two54+x); /* raise inexact */
|
||||
if (ax<0x3c900000) /* |x| < 2**-54 */
|
||||
return x;
|
||||
@ -120,7 +120,7 @@ __log1p(double x)
|
||||
if(hx>0||hx<=((int32_t)0xbfd2bec3)) {
|
||||
k=0;f=x;hu=1;} /* -0.2929<x<0.41422 */
|
||||
}
|
||||
if (hx >= 0x7ff00000) return x+x;
|
||||
else if (__builtin_expect(hx >= 0x7ff00000, 0)) return x+x;
|
||||
if(k!=0) {
|
||||
if(hx<0x43400000) {
|
||||
u = 1.0+x;
|
||||
|
Loading…
Reference in New Issue
Block a user