mirror of git://sourceware.org/git/glibc.git
math: Improve layout of exp/exp10 data
GCC aligns global data to 16 bytes if their size is >= 16 bytes. This patch changes the exp_data struct slightly so that the fields are better aligned and without gaps. As a result on targets that support them, more load-pair instructions are used in exp. The exp benchmark improves 2.5%, "144bits" by 7.2%, "768bits" by 12.7% on Neoverse V2. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org> (cherry picked from commit5afaf99edb) (cherry picked from commit5a08d049dc)
This commit is contained in:
parent
20b5d5ce26
commit
d2febe7c40
|
|
@ -134,10 +134,11 @@ check_uflow (double x)
|
||||||
extern const struct exp_data
|
extern const struct exp_data
|
||||||
{
|
{
|
||||||
double invln2N;
|
double invln2N;
|
||||||
double shift;
|
|
||||||
double negln2hiN;
|
double negln2hiN;
|
||||||
double negln2loN;
|
double negln2loN;
|
||||||
double poly[4]; /* Last four coefficients. */
|
double poly[4]; /* Last four coefficients. */
|
||||||
|
double shift;
|
||||||
|
|
||||||
double exp2_shift;
|
double exp2_shift;
|
||||||
double exp2_poly[EXP2_POLY_ORDER];
|
double exp2_poly[EXP2_POLY_ORDER];
|
||||||
uint64_t tab[2*(1 << EXP_TABLE_BITS)];
|
uint64_t tab[2*(1 << EXP_TABLE_BITS)];
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue