diff options
author | Joseph Myers <joseph@codesourcery.com> | 2017-12-07 00:48:31 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2017-12-07 00:48:31 +0000 |
commit | 1f9055ce04a66a787c400c05f12e88c96f07e686 (patch) | |
tree | a05445d18571377ca108a7a86ffe1ea698815f92 /math | |
parent | fb1ca2aa3e58cad474c918f34e5e5eed70f5d94a (diff) | |
download | glibc-1f9055ce04a66a787c400c05f12e88c96f07e686.tar.gz glibc-1f9055ce04a66a787c400c05f12e88c96f07e686.tar.xz glibc-1f9055ce04a66a787c400c05f12e88c96f07e686.zip |
Add _Float32 function aliases.
This patch concludes filling out TS 18661-3 support for different types by adding *f32 function aliases of float functions to support _Float32. As with _Float64 and _Float32x, this is supported for all glibc configurations. As with the previous such patches there are some x86 ulps updates because of inline functions present for float but not for _Float32. The patch also has the usual bits/floatn-common.h update, symbol versions, ABI baselines updates, test enablement and documentation. Tested for x86_64 and x86, and with build-many-glibcs.py, with both GCC 6 and GCC 7. * bits/floatn-common.h (__HAVE_FLOAT32): Define to 1. * manual/math.texi (Mathematics): Document support for _Float32. * math/Makefile (test-types): Add float32. * math/Versions (GLIBC_2.27): Add _Float32 functions. * stdlib/Versions (GLIBC_2.27): Likewise. * wcsmbs/Versions (GLIBC_2.27): Likewise. * sysdeps/unix/sysv/linux/aarch64/libc.abilist: Update. * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise. * sysdeps/i386/fpu/libm-test-ulps: Likewise. * sysdeps/i386/i686/fpu/multiarch/libm-test-ulps: Likewise.
Diffstat (limited to 'math')
-rw-r--r-- | math/Makefile | 2 | ||||
-rw-r--r-- | math/Versions | 210 |
2 files changed, 106 insertions, 106 deletions
diff --git a/math/Makefile b/math/Makefile index a6c0d8b8a7..ae84abdb25 100644 --- a/math/Makefile +++ b/math/Makefile @@ -132,7 +132,7 @@ type-float64x-yes := float64x types = $(types-basic) $(type-float128-$(float128-fcts)) test-types = $(test-types-basic) $(type-float128-$(float128-fcts)) \ - float64 $(type-float128-$(float128-alias-fcts)) \ + float32 float64 $(type-float128-$(float128-alias-fcts)) \ float32x $(type-float64x-$(float64x-alias-fcts)) # For each of the basic types (float, double, long double), replace the diff --git a/math/Versions b/math/Versions index eaa3b25b0d..01ed388ae5 100644 --- a/math/Versions +++ b/math/Versions @@ -445,110 +445,110 @@ libm { y0f64x; y1f64x; ynf64x; - # _Float64 and _Float32x functions, for all configurations. - acosf64; acosf32x; - acoshf64; acoshf32x; - asinf64; asinf32x; - asinhf64; asinhf32x; - atan2f64; atan2f32x; - atanf64; atanf32x; - atanhf64; atanhf32x; - cabsf64; cabsf32x; - cacosf64; cacosf32x; - cacoshf64; cacoshf32x; - canonicalizef64; canonicalizef32x; - cargf64; cargf32x; - casinf64; casinf32x; - casinhf64; casinhf32x; - catanf64; catanf32x; - catanhf64; catanhf32x; - cbrtf64; cbrtf32x; - ccosf64; ccosf32x; - ccoshf64; ccoshf32x; - ceilf64; ceilf32x; - cexpf64; cexpf32x; - cimagf64; cimagf32x; - clog10f64; clog10f32x; - clogf64; clogf32x; - conjf64; conjf32x; - copysignf64; copysignf32x; - cosf64; cosf32x; - coshf64; coshf32x; - cpowf64; cpowf32x; - cprojf64; cprojf32x; - crealf64; crealf32x; - csinf64; csinf32x; - csinhf64; csinhf32x; - csqrtf64; csqrtf32x; - ctanf64; ctanf32x; - ctanhf64; ctanhf32x; - erfcf64; erfcf32x; - erff64; erff32x; - exp10f64; exp10f32x; - exp2f64; exp2f32x; - expf64; expf32x; - expm1f64; expm1f32x; - fabsf64; fabsf32x; - fdimf64; fdimf32x; - floorf64; floorf32x; - fmaf64; fmaf32x; - fmaxf64; fmaxf32x; - fmaxmagf64; fmaxmagf32x; - fminf64; fminf32x; - fminmagf64; fminmagf32x; - fmodf64; fmodf32x; - frexpf64; frexpf32x; - fromfpf64; fromfpf32x; - fromfpxf64; fromfpxf32x; - getpayloadf64; getpayloadf32x; - hypotf64; hypotf32x; - ilogbf64; ilogbf32x; - j0f64; j0f32x; - j1f64; j1f32x; - jnf64; jnf32x; - ldexpf64; ldexpf32x; - lgammaf64; lgammaf32x; - lgammaf64_r; lgammaf32x_r; - llogbf64; llogbf32x; - llrintf64; llrintf32x; - llroundf64; llroundf32x; - log10f64; log10f32x; - log1pf64; log1pf32x; - log2f64; log2f32x; - logbf64; logbf32x; - logf64; logf32x; - lrintf64; lrintf32x; - lroundf64; lroundf32x; - modff64; modff32x; - nanf64; nanf32x; - nearbyintf64; nearbyintf32x; - nextafterf64; nextafterf32x; - nextdownf64; nextdownf32x; - nextupf64; nextupf32x; - powf64; powf32x; - remainderf64; remainderf32x; - remquof64; remquof32x; - rintf64; rintf32x; - roundevenf64; roundevenf32x; - roundf64; roundf32x; - scalblnf64; scalblnf32x; - scalbnf64; scalbnf32x; - setpayloadf64; setpayloadf32x; - setpayloadsigf64; setpayloadsigf32x; - sincosf64; sincosf32x; - sinf64; sinf32x; - sinhf64; sinhf32x; - sqrtf64; sqrtf32x; - tanf64; tanf32x; - tanhf64; tanhf32x; - tgammaf64; tgammaf32x; - totalorderf64; totalorderf32x; - totalordermagf64; totalordermagf32x; - truncf64; truncf32x; - ufromfpf64; ufromfpf32x; - ufromfpxf64; ufromfpxf32x; - y0f64; y0f32x; - y1f64; y1f32x; - ynf64; ynf32x; + # _Float32, _Float64 and _Float32x functions, for all configurations. + acosf32; acosf64; acosf32x; + acoshf32; acoshf64; acoshf32x; + asinf32; asinf64; asinf32x; + asinhf32; asinhf64; asinhf32x; + atan2f32; atan2f64; atan2f32x; + atanf32; atanf64; atanf32x; + atanhf32; atanhf64; atanhf32x; + cabsf32; cabsf64; cabsf32x; + cacosf32; cacosf64; cacosf32x; + cacoshf32; cacoshf64; cacoshf32x; + canonicalizef32; canonicalizef64; canonicalizef32x; + cargf32; cargf64; cargf32x; + casinf32; casinf64; casinf32x; + casinhf32; casinhf64; casinhf32x; + catanf32; catanf64; catanf32x; + catanhf32; catanhf64; catanhf32x; + cbrtf32; cbrtf64; cbrtf32x; + ccosf32; ccosf64; ccosf32x; + ccoshf32; ccoshf64; ccoshf32x; + ceilf32; ceilf64; ceilf32x; + cexpf32; cexpf64; cexpf32x; + cimagf32; cimagf64; cimagf32x; + clog10f32; clog10f64; clog10f32x; + clogf32; clogf64; clogf32x; + conjf32; conjf64; conjf32x; + copysignf32; copysignf64; copysignf32x; + cosf32; cosf64; cosf32x; + coshf32; coshf64; coshf32x; + cpowf32; cpowf64; cpowf32x; + cprojf32; cprojf64; cprojf32x; + crealf32; crealf64; crealf32x; + csinf32; csinf64; csinf32x; + csinhf32; csinhf64; csinhf32x; + csqrtf32; csqrtf64; csqrtf32x; + ctanf32; ctanf64; ctanf32x; + ctanhf32; ctanhf64; ctanhf32x; + erfcf32; erfcf64; erfcf32x; + erff32; erff64; erff32x; + exp10f32; exp10f64; exp10f32x; + exp2f32; exp2f64; exp2f32x; + expf32; expf64; expf32x; + expm1f32; expm1f64; expm1f32x; + fabsf32; fabsf64; fabsf32x; + fdimf32; fdimf64; fdimf32x; + floorf32; floorf64; floorf32x; + fmaf32; fmaf64; fmaf32x; + fmaxf32; fmaxf64; fmaxf32x; + fmaxmagf32; fmaxmagf64; fmaxmagf32x; + fminf32; fminf64; fminf32x; + fminmagf32; fminmagf64; fminmagf32x; + fmodf32; fmodf64; fmodf32x; + frexpf32; frexpf64; frexpf32x; + fromfpf32; fromfpf64; fromfpf32x; + fromfpxf32; fromfpxf64; fromfpxf32x; + getpayloadf32; getpayloadf64; getpayloadf32x; + hypotf32; hypotf64; hypotf32x; + ilogbf32; ilogbf64; ilogbf32x; + j0f32; j0f64; j0f32x; + j1f32; j1f64; j1f32x; + jnf32; jnf64; jnf32x; + ldexpf32; ldexpf64; ldexpf32x; + lgammaf32; lgammaf64; lgammaf32x; + lgammaf32_r; lgammaf64_r; lgammaf32x_r; + llogbf32; llogbf64; llogbf32x; + llrintf32; llrintf64; llrintf32x; + llroundf32; llroundf64; llroundf32x; + log10f32; log10f64; log10f32x; + log1pf32; log1pf64; log1pf32x; + log2f32; log2f64; log2f32x; + logbf32; logbf64; logbf32x; + logf32; logf64; logf32x; + lrintf32; lrintf64; lrintf32x; + lroundf32; lroundf64; lroundf32x; + modff32; modff64; modff32x; + nanf32; nanf64; nanf32x; + nearbyintf32; nearbyintf64; nearbyintf32x; + nextafterf32; nextafterf64; nextafterf32x; + nextdownf32; nextdownf64; nextdownf32x; + nextupf32; nextupf64; nextupf32x; + powf32; powf64; powf32x; + remainderf32; remainderf64; remainderf32x; + remquof32; remquof64; remquof32x; + rintf32; rintf64; rintf32x; + roundevenf32; roundevenf64; roundevenf32x; + roundf32; roundf64; roundf32x; + scalblnf32; scalblnf64; scalblnf32x; + scalbnf32; scalbnf64; scalbnf32x; + setpayloadf32; setpayloadf64; setpayloadf32x; + setpayloadsigf32; setpayloadsigf64; setpayloadsigf32x; + sincosf32; sincosf64; sincosf32x; + sinf32; sinf64; sinf32x; + sinhf32; sinhf64; sinhf32x; + sqrtf32; sqrtf64; sqrtf32x; + tanf32; tanf64; tanf32x; + tanhf32; tanhf64; tanhf32x; + tgammaf32; tgammaf64; tgammaf32x; + totalorderf32; totalorderf64; totalorderf32x; + totalordermagf32; totalordermagf64; totalordermagf32x; + truncf32; truncf64; truncf32x; + ufromfpf32; ufromfpf64; ufromfpf32x; + ufromfpxf32; ufromfpxf64; ufromfpxf32x; + y0f32; y0f64; y0f32x; + y1f32; y1f64; y1f32x; + ynf32; ynf64; ynf32x; } } |