This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
different results for expf on x86_64
- From: paul zimmermann <Paul dot Zimmermann at inria dot fr>
- To: libc-alpha at sourceware dot org
- Date: Tue, 04 Feb 2020 08:25:36 +0100
- Subject: different results for expf on x86_64
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