aboutsummaryrefslogtreecommitdiff
path: root/math
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2017-12-07 00:48:31 +0000
committerJoseph Myers <joseph@codesourcery.com>2017-12-07 00:48:31 +0000
commit1f9055ce04a66a787c400c05f12e88c96f07e686 (patch)
treea05445d18571377ca108a7a86ffe1ea698815f92 /math
parentfb1ca2aa3e58cad474c918f34e5e5eed70f5d94a (diff)
downloadglibc-1f9055ce04a66a787c400c05f12e88c96f07e686.zip
glibc-1f9055ce04a66a787c400c05f12e88c96f07e686.tar.gz
glibc-1f9055ce04a66a787c400c05f12e88c96f07e686.tar.bz2
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/Makefile2
-rw-r--r--math/Versions210
2 files changed, 106 insertions, 106 deletions
diff --git a/math/Makefile b/math/Makefile
index a6c0d8b..ae84abd 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 eaa3b25..01ed388 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;
}
}