different results for expf on x86_64
paul zimmermann
Paul.Zimmermann@inria.fr
Tue Feb 4 07:25:00 GMT 2020
Hi,
sorry if I ask a dummy question, I'm new to the list.
While performing my exhaustive tests on binary32 math functions on x86_64,
I've noticed that for some functions, I get different numbers of incorrectly
rounded results on different processors (all with the brand new glibc-2.31).
For example for expf, on a i5-4590, I get 170648 incorrectly rounded results,
while on a E7540, I get only 170646, i.e., 2 less.
The two inputs are 3.256463242e+01 and -6.309946060e+01. For example
on the i5-4590 I get exp(3.256463242e+01) = 1.388801499e+14.
After investigating more, if I simply add printf ("z=%.16e\n", z) after
z = InvLn2N * xd (line 80) in e_expf.c, I get 1.388801415e+14 instead,
like on the E7540.
Is that issue known? How many "flavours" of x86_64 can we have? To which
flavour does correspond the "Wrong count: 170635" at the top of e_expf.c?
Best regards,
Paul
More information about the Libc-alpha
mailing list