freebsd-dev/lib/msun
Mark Murray 292815eac6 Fix powf().
Summary:
From Steve Kargl:

Paul Zimmermann has identified a bug in Openlibm's powf(),
which is identical to FreeBSD's libm.  Both derived from
fdlibm. https://github.com/JuliaMath/openlibm/issues/212.

Consider

% cat h.c
int
main(void)
{
  float x, y, z;
  x =  0x1.ffffecp-1F;
  y = -0x1.000002p+27F;
  z =  0x1.557a86p115F;
  printf("%e %e %e <-- should be %e\n", x, y, powf(x,y), z);
  return 0;
}

% cc -o h -fno-builtin h.c -lm && ./h
9.999994e-01 -1.342177e+08 inf <-- should be 5.540807e+34

Reviewers: manu

Subscribers: imp, andrew, emaste

Differential Revision: https://reviews.freebsd.org/D31865
2021-09-06 18:51:31 +01:00
..
aarch64 Save all fpcr/fpsr bits in the AArch64 fenv_t 2021-03-12 17:01:41 +00:00
amd64 libm: Add missing END() directives for amd64 routines 2019-10-23 16:05:52 +00:00
arm lib: further adoption of SPDX licensing ID tags. 2017-11-26 02:00:33 +00:00
bsdsrc msun: drop clause 3 from the Berkeley license. 2019-12-27 01:11:26 +00:00
i387 Add CFI start/end proc directives to arm64, i386, and ppc 2020-12-05 00:33:28 +00:00
ld80 lib/msun: Fix x86 GCC6 build after 221622ec0c 2021-03-12 18:44:44 +00:00
ld128 lib/msun: Avoid FE_INEXACT for x86 log2l/log10l 2021-03-08 09:39:32 +00:00
man math(3): Use the .Fa macro for function arguments 2021-07-09 19:51:44 +02:00
mips lib: further adoption of SPDX licensing ID tags. 2017-11-26 02:00:33 +00:00
powerpc Set default SPE FP environment 2021-05-29 21:53:35 -05:00
riscv RISC-V: Fix feenableexcept return value 2021-03-25 11:16:20 +00:00
src Fix powf(). 2021-09-06 18:51:31 +01:00
tests Fix failures in libm's lround_test after clang 12 import 2021-06-22 18:38:45 +02:00
x86 Resolve conflicts between macros in fenv.h and ieeefp.h 2018-05-31 20:22:47 +00:00
Makefile lib/msun: Exclude ignored-pragmas from -Werror 2021-04-15 16:27:52 +01:00
Makefile.depend Update Makefile.depend files 2019-12-11 17:37:53 +00:00
Symbol.map msun: add ld80/ld128 powl, cpow, cpowf, cpowl from openbsd 2018-07-15 00:23:10 +00:00