glibc/sysdeps/ieee754/flt-32
Joseph Myers 1f79bc4838 Change fromfp functions to return floating types following C23 (bug 28327)
As discussed in bug 28327, C23 changed the fromfp functions to return
floating types instead of intmax_t / uintmax_t.  (Although the
motivation in N2548 was reducing the use of intmax_t in library
interfaces, the new version does have the advantage of being able to
specify arbitrary integer widths for e.g. assigning the result to a
_BitInt, as well as being able to indicate an error case in-band with
a NaN return.)

As with other such changes from interfaces introduced in TS 18661,
implement the new types as a replacement for the old ones, with the
old functions remaining as compat symbols but not supported as an API.
The test generator used for many of the tests is updated to handle
both versions of the functions.

Tested for x86_64 and x86, and with build-many-glibcs.py.

Also tested tgmath tests for x86_64 with GCC 7 to make sure that the
modified case for older compilers in <tgmath.h> does work.

Also tested for powerpc64le to cover the ldbl-128ibm implementation
and the other things that are handled differently for that
configuration.  The new tests fail for ibm128, but all the failures
relate to incorrect signs of zero results and turn out to arise from
bugs in the underlying roundl, ceill, truncl and floorl
implementations that I've reported in bug 33623, rather than
indicating any bug in the actual new implementation of the functions
for that format.  So given fixes for those functions (which shouldn't
be hard, and of course should add to the tests for those functions
rather than relying only on indirect testing via fromfp), the fromfp
tests should start passing for ibm128 as well.
2025-11-13 00:04:21 +00:00
..
Makefile stdio-common: Add scanf float data for IEEE 754 binary32 format 2025-03-25 09:40:20 +00:00
e_acosf.c math: Remove the SVID error handling from acosf 2025-10-30 15:41:20 -03:00
e_acoshf.c math: Remove the SVID error handling from acoshf 2025-10-30 15:41:24 -03:00
e_asinf.c math: Remove the SVID error handling from asinf 2025-10-30 15:41:22 -03:00
e_atan2f.c math: Remove the SVID error handling from atan2f 2025-11-05 07:15:52 -03:00
e_atanhf.c math: Remove the SVID error handling from atanhf 2025-10-30 15:41:26 -03:00
e_coshf.c math: Remove the SVID error handling from coshf 2025-10-30 15:41:28 -03:00
e_exp2f.c math: Remove float_t and double_t [BZ #33563] 2025-11-12 19:33:23 +00:00
e_exp2f_data.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
e_exp10f.c various fixes detected with -Wdouble-promotion 2025-10-22 12:35:40 +02:00
e_expf.c math: Remove float_t and double_t [BZ #33563] 2025-11-12 19:33:23 +00:00
e_fmodf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
e_gammaf_r.c math: Remove the SVID error handling from tgammaf 2025-11-05 10:19:37 -03:00
e_hypotf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
e_ilogbf.c math: Optimize float ilogb/llogb 2025-06-02 13:32:19 -03:00
e_j0f.c math: Remove the SVID error handling wrapper from y0/j0 2025-10-30 15:41:31 -03:00
e_j1f.c math: Remove the SVID error handling wrapper from y1/j1 2025-10-30 15:41:33 -03:00
e_jnf.c math: Remove the SVID error handling wrapper from yn/jn 2025-10-30 15:41:35 -03:00
e_lgammaf_r.c math: Remove the SVID error handling from lgammaf/lgammaf_r 2025-11-05 09:27:07 -03:00
e_log2f.c math: Remove float_t and double_t [BZ #33563] 2025-11-12 19:33:23 +00:00
e_log2f_data.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
e_log10f.c math: Remove the SVID error handling from log10f 2025-10-30 15:41:17 -03:00
e_logf.c math: Remove float_t and double_t [BZ #33563] 2025-11-12 19:33:23 +00:00
e_logf_data.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
e_powf.c math: Remove float_t and double_t [BZ #33563] 2025-11-12 19:33:23 +00:00
e_powf_log2_data.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
e_remainderf.c math: Remove the SVID error handling from remainderf 2025-11-04 04:14:01 -03:00
e_sincoshf_data.c math: Consolidate coshf and sinhf internal tables 2025-02-12 16:31:57 -03:00
e_sincoshf_data.h math: Consolidate coshf and sinhf internal tables 2025-02-12 16:31:57 -03:00
e_sinhf.c math: Remove the SVID error handling from sinhf 2025-11-04 04:14:01 -03:00
e_sqrtf.c math: Remove the SVID error handling wrapper from sqrt 2025-11-04 04:14:01 -03:00
k_tanf.c math: Use tanf from CORE-MATH 2024-11-22 10:52:27 -03:00
libm-test-ulps math: Refactor how to use libm-test-ulps 2025-03-12 13:40:07 -03:00
math_config.h math: Remove float_t and double_t [BZ #33563] 2025-11-12 19:33:23 +00:00
math_errf.c math: Remove the SVID error handling from tgammaf 2025-11-05 10:19:37 -03:00
mpn2flt.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
reduce_aux.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
s_acospif.c math: Optimize fma call on acospif 2025-10-14 08:46:06 -03:00
s_asincosf_data.c math: Consolidate acosf and asinf internal tables 2025-02-17 10:09:09 -03:00
s_asincosf_data.h math: Consolidate acosf and asinf internal tables 2025-02-17 10:09:09 -03:00
s_asincoshf_data.c math: Consolidate acoshf and asinhf internal tables 2025-02-12 16:31:57 -03:00
s_asincoshf_data.h math: Consolidate acoshf and asinhf internal tables 2025-02-12 16:31:57 -03:00
s_asincospif_data.c math: Consolidate acospif and asinpif internal tables 2025-02-17 10:09:09 -03:00
s_asincospif_data.h math: Consolidate acospif and asinpif internal tables 2025-02-17 10:09:09 -03:00
s_asinhf.c math: Remove asinhf fma usage 2025-10-14 08:46:06 -03:00
s_asinpif.c various fixes detected with -Wdouble-promotion 2025-10-22 12:35:40 +02:00
s_atan2pif.c math: Use atan2pif from CORE-MATH 2025-02-12 16:31:57 -03:00
s_atanf.c math: Use atanf from CORE-MATH 2024-12-18 17:24:43 -03:00
s_atanpif.c various fixes detected with -Wdouble-promotion 2025-10-22 12:35:40 +02:00
s_cbrtf.c math: Fix UB on cbrtf (BZ 32922) 2025-04-29 15:20:10 -03:00
s_ceilf.c
s_compat_fromfpf.c Change fromfp functions to return floating types following C23 (bug 28327) 2025-11-13 00:04:21 +00:00
s_compat_fromfpf_main.c Change fromfp functions to return floating types following C23 (bug 28327) 2025-11-13 00:04:21 +00:00
s_compat_fromfpxf.c Change fromfp functions to return floating types following C23 (bug 28327) 2025-11-13 00:04:21 +00:00
s_compat_ufromfpf.c Change fromfp functions to return floating types following C23 (bug 28327) 2025-11-13 00:04:21 +00:00
s_compat_ufromfpxf.c Change fromfp functions to return floating types following C23 (bug 28327) 2025-11-13 00:04:21 +00:00
s_copysignf.c
s_cosf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
s_cospif.c math: Fix UB on cospif (BZ 32923) 2025-04-29 15:20:16 -03:00
s_erfcf.c various fixes detected with -Wdouble-promotion 2025-10-22 12:35:40 +02:00
s_erff.c math: Use erff from CORE-MATH 2024-11-22 10:52:27 -03:00
s_exp2m1f.c math: Fix incorrect results of exp10m1f with some GCC versions 2024-11-06 16:09:05 +01:00
s_exp10m1f.c math: Fix incorrect results of exp10m1f with some GCC versions 2024-11-06 16:09:05 +01:00
s_expm1f.c math: Add internal roundeven_finite 2024-11-26 15:07:57 -03:00
s_fabsf.c
s_finitef.c
s_floorf.c
s_fpclassifyf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
s_frexpf.c math: Optimize frexpf (binary32) with fast path for normal numbers 2025-11-10 08:58:18 -03:00
s_fromfpf.c Change fromfp functions to return floating types following C23 (bug 28327) 2025-11-13 00:04:21 +00:00
s_fromfpf_main.c Change fromfp functions to return floating types following C23 (bug 28327) 2025-11-13 00:04:21 +00:00
s_fromfpxf.c Change fromfp functions to return floating types following C23 (bug 28327) 2025-11-13 00:04:21 +00:00
s_getpayloadf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
s_isinff.c
s_isnanf.c
s_issignalingf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
s_llrintf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
s_llroundf.c math: Add builtin support for (l)lround(f) 2025-10-17 17:03:54 +00:00
s_log1pf.c various fixes detected with -Wdouble-promotion 2025-10-22 12:35:40 +02:00
s_log2p1f.c math: Optimize fma call on log2pf1 2025-10-14 11:12:00 -03:00
s_log10p1f.c various fixes detected with -Wdouble-promotion 2025-10-22 12:35:40 +02:00
s_logbf.c
s_lrintf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
s_lroundf.c math: Add builtin support for (l)lround(f) 2025-10-17 17:03:54 +00:00
s_modff.c powerpc: Remove modff optimization 2025-06-25 15:05:30 -03:00
s_nearbyintf.c
s_nextafterf.c
s_nextupf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
s_remquof.c various fixes detected with -Wdouble-promotion 2025-10-22 12:35:40 +02:00
s_rintf.c
s_roundevenf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
s_roundf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
s_scalblnf.c
s_scalbnf.c
s_setpayloadf.c
s_setpayloadf_main.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
s_setpayloadsigf.c
s_signbitf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
s_sincosf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
s_sincosf.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
s_sincosf_data.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
s_sincospif_data.c math: Consolidate cospif and sinpif internal tables 2025-02-17 10:09:09 -03:00
s_sincospif_data.h math: Consolidate cospif and sinpif internal tables 2025-02-17 10:09:09 -03:00
s_sinf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
s_sinpif.c math: Fix UB on sinpif (BZ 32925) 2025-04-29 15:20:28 -03:00
s_tanf.c math: Fix tanf for some inputs (BZ 32630) 2025-02-03 09:40:39 -03:00
s_tanhf.c math: Use tanhf from CORE-MATH 2024-12-18 17:24:43 -03:00
s_tanpif.c math: Use tanpif from CORE-MATH 2025-02-12 16:31:57 -03:00
s_totalorderf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
s_totalordermagf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
s_truncf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
s_ufromfpf.c Change fromfp functions to return floating types following C23 (bug 28327) 2025-11-13 00:04:21 +00:00
s_ufromfpxf.c Change fromfp functions to return floating types following C23 (bug 28327) 2025-11-13 00:04:21 +00:00
sincosf_poly.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-scanf-format-float-a.input stdio-common: Fix NaN input data for scanf input specifier tests [BZ #32857] 2025-08-23 01:02:46 +01:00
tst-scanf-format-float-aa.input stdio-common: Fix NaN input data for scanf input specifier tests [BZ #32857] 2025-08-23 01:02:46 +01:00
tst-scanf-format-float-e.input stdio-common: Fix NaN input data for scanf input specifier tests [BZ #32857] 2025-08-23 01:02:46 +01:00
tst-scanf-format-float-ee.input stdio-common: Fix NaN input data for scanf input specifier tests [BZ #32857] 2025-08-23 01:02:46 +01:00
tst-scanf-format-float-f.input stdio-common: Fix NaN input data for scanf input specifier tests [BZ #32857] 2025-08-23 01:02:46 +01:00
tst-scanf-format-float-ff.input stdio-common: Fix NaN input data for scanf input specifier tests [BZ #32857] 2025-08-23 01:02:46 +01:00
tst-scanf-format-float-g.input stdio-common: Fix NaN input data for scanf input specifier tests [BZ #32857] 2025-08-23 01:02:46 +01:00
tst-scanf-format-float-gg.input stdio-common: Fix NaN input data for scanf input specifier tests [BZ #32857] 2025-08-23 01:02:46 +01:00
w_acosf.c math: Remove the SVID error handling from acosf 2025-10-30 15:41:20 -03:00
w_acoshf.c math: Remove the SVID error handling from acoshf 2025-10-30 15:41:24 -03:00
w_asinf.c math: Remove the SVID error handling from asinf 2025-10-30 15:41:22 -03:00
w_atan2f.c math: Remove the SVID error handling from atan2f 2025-11-05 07:15:52 -03:00
w_atanhf.c math: Remove the SVID error handling from atanhf 2025-10-30 15:41:26 -03:00
w_coshf.c math: Remove the SVID error handling from coshf 2025-10-30 15:41:28 -03:00
w_exp2f.c
w_expf.c
w_fmodf.c
w_hypotf.c
w_ilogbf-impl.h math: Optimize float ilogb/llogb 2025-06-02 13:32:19 -03:00
w_ilogbf.c math: Optimize float ilogb/llogb 2025-06-02 13:32:19 -03:00
w_j0f.c math: Remove the SVID error handling wrapper from y0/j0 2025-10-30 15:41:31 -03:00
w_j1f.c math: Remove the SVID error handling wrapper from y1/j1 2025-10-30 15:41:33 -03:00
w_jnf.c math: Remove the SVID error handling wrapper from yn/jn 2025-10-30 15:41:35 -03:00
w_lgammaf.c math: Remove the SVID error handling from lgammaf/lgammaf_r 2025-11-05 09:27:07 -03:00
w_lgammaf_r.c math: Remove the SVID error handling from lgammaf/lgammaf_r 2025-11-05 09:27:07 -03:00
w_llogbf.c math: Optimize float ilogb/llogb 2025-06-02 13:32:19 -03:00
w_log1pf.c math: Use log1pf from CORE-MATH 2024-11-01 11:27:39 -03:00
w_log2f.c
w_log10f.c math: Remove the SVID error handling from log10f 2025-10-30 15:41:17 -03:00
w_logf.c
w_powf.c
w_remainderf.c math: Remove the SVID error handling from remainderf 2025-11-04 04:14:01 -03:00
w_sinhf.c math: Remove the SVID error handling from sinhf 2025-11-04 04:14:01 -03:00
w_sqrtf.c math: Remove the SVID error handling wrapper from sqrt 2025-11-04 04:14:01 -03:00
w_tgammaf.c math: Remove the SVID error handling from tgammaf 2025-11-05 10:19:37 -03:00